home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / c / library / dos / menu / kiwi / demoprg / index.hlp < prev    next >
Encoding:
Text File  |  1992-04-14  |  74.1 KB  |  2,242 lines

  1. @Allgemeine Hinweise
  2. Dieses ist ein Ausschnitt aus dem Handbuch. Aus Platzgründen ist
  3. leider keine vollständige Beschreibung aller Funktionen möglich.
  4. Aus diesem Grund sind Querverweise und die Beispiele nicht enthalten.
  5. Die Realisierung dieser Funktion wird mit dem Hilfesystem ermöglicht,
  6. wobei gleichzeitig gezeigt werden kann, das dieses System auch große
  7. Datenmengen schnell handhaben kann. Die erforderlichen Codeanweisungen
  8. sind weniger als 10 Zeilen.
  9. Wir hoffen das aus dieser Übersicht die Arbeitsweise
  10. und das Konzept der KIWI C TOOLS V 3.20 hervorgeht, und Sie von
  11. der Leistungsfähigkeit der TOOLS überzeugen wird.
  12.  
  13. @cls
  14. void cls();
  15.  
  16. ■ Beschreibung:
  17.  
  18. Die Funktion cls löscht den gesamten Bildschirminhalt mit dem 
  19. Initialisierungszeichen das bei init_screen angegeben wurde. 
  20. Damit werden auch alle bestehenden Fenster und der interne 
  21. Bildschirm gelöscht. Die Fenster werden damit aber nicht gelöscht, 
  22. deshalb sollte diese Funktion nur angewendet werden, wenn keine Fenster 
  23. eröffnet sind.
  24.  
  25. @get_cursor_size
  26. int get_cursor_size();
  27.  
  28. ■ Beschreibung:
  29.  
  30. Die Funktion get_cursor_size übergibt die Form des aktuellen 
  31. Hardwarecursors.
  32.  
  33. @get_screen_height
  34. int get_screen_height();
  35.  
  36. ■ Beschreibung:
  37.  
  38. Die Funktion get_screen_height übergibt die Höhe des 
  39. verfügbaren Bildschirms in Zeilen. Die Höhe kann von 25- 88 Spalten 
  40. variieren, je nach Art des verwendeten Bildschirmadapters und 
  41. Bildschirmmodus.
  42.  
  43. @get_screen_wide
  44. int get_screen_wide();
  45.  
  46. ■ Beschreibung:
  47.  
  48. Die Funktion get_screen_wide übergibt die Breite des verfügbaren 
  49. Bildschirms in Spalten. Die Breite kann von 40-132 Spalten variieren, 
  50. je nach Art des verwendeten Bildschirmadapters und des Bildschirmmodus.
  51.  
  52. @init_color_table
  53. int init_color_table(nr,v,b,vi,bi);
  54.  
  55. ■ Parameter:
  56. int nr;                       Nummer der Farbtabelle.
  57. unsigned char v,b,vi,bi;      MACROS aus kiwi_inc.h
  58.  
  59. ■ Beschreibung:
  60.  
  61. Die Funktion init_color_table initialisiert eine Farbtabelle mit 
  62. ausgewählten Farben. Das Fenstersubsystem unterstützt bis zu 5 
  63. verschiedene Farbtabellen(beginnend bei 0), die durch die 
  64. Funktion set_color_table angewählt werden. Die Farbtabelle 0 
  65. wird bei dem Aufruf init_screen initialisiert und ist standardmäßig 
  66. vorgewählt. Alle Ausgaben auf den Bildschirm erscheinen mit den 
  67. in der aktuellen Farbtabelle ausgewählten Farbattributen.
  68. Ist ein Monochrombildschirm angeschlossen, werden alle Farbtabellen 
  69. automatisch auf VWEIS,HSCHWARZ,VSCHWARZ,HWEIS limitiert. 
  70.  
  71. @init_screen
  72. int init_screen(v1,h1,v2,h2,ini,mode);
  73.  
  74. ■ Parameter:
  75.  
  76. unsigned char v1,h1,v2,h2;    MACROS aus kiwi_inc.h. Definition für
  77.                   Standardfarbe und Inversdarstellung.
  78. unsigned char ini;            Definition der Bildschirmhintergrundfläche.
  79. int mode;                     Festlegung des Bildschirmzugriffsmodus.
  80.  
  81. ■ Beschreibung:
  82.  
  83. Die Funktion init_screen initialisiert das gesamte Fenstersystem und 
  84. muß vor jedem weiteren Befehl aus der KIWITOOLS Library aufgerufen 
  85. werden, der eine Bildschirmmanipulation vornimmt (außer set_video_mode). 
  86. Es wird der aktuelle Bildschirmmodus übernommen, sofern es ein 
  87. Textmodus ist. Die Bildschirmaddresse und die Bildschirmgröße 
  88. werden automatisch angepasst. Bei Verwendung des Monochrom-Modes 7 
  89. werden die Farbangaben automatisch auf Schwarz und Weiß beschränkt.
  90. Wird ein Grafikmodus vorgefunden, erfolgt automatisch eine 
  91. Umschaltung in den Modus 3. Wird ein Monochromadapter 
  92. (Herkules oder MDA) vorgefunden, wird automatisch auf Modus 7 geschaltet.
  93.  
  94. @reset_screen
  95. void reset_screen();
  96.  
  97. ■ Beschreibung:
  98.  
  99. Die Funktion reset_screen re-initialisiert das gesamte Bildschirmsystem 
  100. und sollte als eine der letzten Anweisung eines Programmes aufgerufen 
  101. werden, um eventuell noch allozierte Speicherbereiche freizugeben. 
  102. Der Bildschirm wird dabei gelöscht.
  103.  
  104. @screen_pos
  105. int screen_pos(x,y);
  106.  
  107. ■ Parameter:
  108.  
  109. int x,y;     Bildschirmkoodinaten 
  110.  
  111. ■ Beschreibung:
  112.  
  113. Die Funktion screen_pos berechnet aus den absoluten Koordinaten x,y, 
  114. die entsprechende Position innerhalb des Bildschirm wenn dieser als 
  115. eindimensionaler Vektor aufgefaßt wird. Diese Funktion ist bei 
  116. einigen Ausgabefunktionen als Argument notwendig.
  117.  
  118. @scroll_screen_unit
  119. int scroll_screen_unit(xa,ya,xe,ye,dir,zeich);
  120.  
  121. ■ Parameter:
  122.  
  123. int xa,ya,xe,ye;      Koordinaten des Scrollbereichs 
  124. int dir;              Richtung in die gescrollt wird.
  125.               MACRO aus kiwi_inc.h
  126.               SCROLL_HOCH,SCROLL_RUNTER
  127.               SCROLL_LINKS,SCROLL_RECHTS 
  128. unsigned char zeich;  Zeichen mit dem die freiwerdende
  129.               Zeile bzw Spalte aufgefüllt wird
  130.  
  131. ■ Beschreibung:
  132.  
  133. Die Funktion scroll_screen_unit scrollt den Bildschirm um jeweils 
  134. 1 Reihe oder Spalte in die durch dir angegebene Richtung. An der 
  135. freiwerdenden Zeile oder Spalte werden Zeichen mit den 
  136. gültigen Attributwerten erzeugt.
  137.  
  138. @set_color
  139. int set_color(mode);
  140.  
  141. ■ Parameter:
  142.  
  143. int mode;     NORM_COL für Normale Farbdarstellung
  144.           INV_COL  für Inverse Farbdarstellung
  145.           FLIP für Umschalten der Farbe
  146.  
  147. ■ Beschreibung:
  148.  
  149. Die Funktion set_color schaltet die Standardfarbattribute von 
  150. Normaldarstellung auf Inversdarstellung oder zurück. Jede 
  151. Farbtabelle besteht aus einer Vorder- und Hintergrundfarbe für 
  152. Normal und Inversdarstellung(insgesamt also 4 Farben).
  153. Mit dieser Funktion können nun die Standardattribute einfach zwischen 
  154. der Normal un der Inversdarstellung gewechselt werden.
  155. Alle nachfolgenden Ausgaben, die Standardattribute benutzen, 
  156. werden beeinflußt, jedoch keine bereits bestehenden Ausgaben.
  157.  
  158. @set_color_table
  159. int set_color_table(nr);
  160.  
  161. ■ Parameter:
  162.  
  163. int nr;         Nummer der Farbtabelle.
  164.  
  165. ■ Beschreibung:
  166.  
  167. Die Funktion set_color_table wählt eine zuvor initialisierte 
  168. Farbtabelle aus, und setzt die dort definierten Farbattribute 
  169. als die aktuellen Standardattribute ein. Das Fenstersubsystem 
  170. unterstützt bis zu 5 Farbtabellen (0-4). Die Farbtabelle 0 wird 
  171. bei dem Aufruf init_screen initialisiert. Alle Ausgaben auf dem 
  172. Bildschirm, bei denen Standardattribute benutzten werden, sind durch 
  173. diesen Aufruf beeinflußt. Bereits bestehende Ausgaben werden nicht 
  174. beeinflußt.  Wenn die gewählte Farbtabelle nicht definiert wurde, 
  175. wird der Funktionsaufruf ignoriert.
  176.  
  177. @set_cursor_shape
  178. void set_cursor_shape(start,end);
  179.  
  180. ■ Parameter:
  181.  
  182. int start,end;         Start, bzw Endzeile des Cursors
  183.  
  184. ■ Beschreibung:
  185.  
  186. Die Funktion set_cursor_shape schaltet den normalen Hardwarecursor so um, 
  187. daß die Darstellung von Start - Endzeile geht. Der Cursor kann bei 
  188. Monochrom von 1-13 und bei Farbadaptern von 1-7 gehen.
  189.  
  190. @set_cursor_size
  191. int set_cursor_size(mode);
  192.  
  193. ■ Parameter:
  194.  
  195. int mode;       MACRO aus kiwi_inc.h
  196.  
  197. ■ Beschreibung:
  198.  
  199. Die Funktion set_cursor_size schaltet den normalen 
  200. Hardwarecursor auf MODE. Dabei ist der Cursor in jedem Fall 
  201. vorhanden, er wird nur eventuell nicht dargestellt.
  202.  
  203. @set_output_mode
  204. int set_output_mode(mode);
  205.  
  206. ■ Parameter:
  207.  
  208. int mode;     MACRO aus kiwi_inc.h
  209.  
  210. ■ Beschreibung:
  211.  
  212. Die Funktion set_output_mode schaltet die Art des Bildschirmzugriffs 
  213. um. Zur Verfügung stehen BIOS und DIREKT. BIOS Mode ist langsamer 
  214. als DIREKT Mode, da das BIOS dabei benutzt wird. Der Direktzugriff 
  215. ist der schnellstmögliche Zugriff auf den Bildschirm, kann aber in  
  216. manchen Fällen zu Problemen führen. Der Zugriffsmode kann 
  217. jederzeit geändert werden.
  218.  
  219. @set_screen_size
  220. void set_screen_size(x,y);
  221.  
  222. ■ Parameter:
  223.  
  224. int x,y;      Gewünschte Bildschirmgröße SpaltenxZeilen
  225.  
  226. ■ Beschreibung:
  227.  
  228. Die Funktion set_screen_size setzt die Bildschirmgröße auf X * Y Zeichen.
  229. Diese Funktion sollte im Zusammenhang mit set_video_mode aufgerufen werden, 
  230. um den interen und den pyhsikalischen Bildschirm auf die gewünschte Größe 
  231. zu setzen. Diese Funktion kann auch während der Laufzeit aufgerufen 
  232. werden. Um den Bildschirm wiederherzustellen (set_video_mode löscht 
  233. den physikalischen Bildschirm) sollte die Funktion refresh_screen 
  234. benutzt werden. Eventuell muß der Mausbereich ebenfalls angepasst werden.
  235.  
  236. @compute_window_position
  237. void compute_window_position(x,y,breite,hoehe,xa,ya,xe,ye);
  238.  
  239. ■ Parameter:
  240.  
  241. int x,y;       Koordinaten der linken oberen Ecke des Fensters
  242. int breite;    Gewünschte Fensterbreite
  243. int hoehe;     Gewünschte Fensterhöhe
  244. int *xa,*ya;   Berechnete Koordinaten der linken oberen Ecke
  245. int *xe,*ye;   Berechnete Koordinaten der rechten unteren Ecke
  246.  
  247. ■ Beschreibung:
  248.  
  249. Die Funktion compute_window_position berechnet die Eckkordinaten 
  250. eines Fensters durch Angabe der linken oberen Ecke, der Breite und 
  251. der Höhe des Fensters. Dabei werden die Koordinaten auf die 
  252. Bildschirmgröße angepasst. Für x,y kann auch eines der MACROS AL,AM,AR 
  253. angegeben werden, wodurch die Fensterposition der jeweiligen Achse 
  254. linksbündig, mittig oder rechtsbündig ausgerichtet wird.
  255.  
  256. @get_window_edge
  257. int get_window_edge(win,xa,ya,xe,ye);
  258.  
  259. ■ Parameter:
  260.  
  261. WINDOW win;            Fensterbezeichner auf das Fenster.
  262. int *xa,*ya,*xe,*ye;   Grenzen des beschreibbaren Fensterbereichs.
  263.  
  264. ■ Beschreibung:
  265.  
  266. Die Funktion get_window_edge übergibt die obere linke und untere rechte 
  267. Ecke des beschreibbaren Fensterbereichs des Fensters win.
  268. Da bei Erstellung die angegeben Fenstergrenzen überprüft und 
  269. gegebenenfalls korrigiert werden, ob Sie innerhalb des Bildschirms 
  270. liegen, ist dieses die einzige zuverlässige Methode die realen 
  271. Grenzen eines Fensters zu erfassen. Ist das Fenster nicht vorhanden 
  272. werden die Bildschirmgrenzen übergeben.
  273.  
  274. @get_last_window
  275. WINDOW get_last_window();
  276.  
  277. ■ Beschreibung:
  278.  
  279. Das Funktion get_last_window gibt den Fensterbezeichner auf das zuletzt 
  280. erstellte, bzw das oberste Window zurück. Wenn Sie mit dem 
  281. Windowmanager arbeiten, ist dieses die einzige Möglichkeit, das 
  282. aktuelle oberste Window zu erfassen.
  283.  
  284. @get_linked_screen
  285. VSCREEN get_linked_screen(win);
  286.  
  287. ■ Parameter:
  288.  
  289. WINDOW win;     Fensterbezeichner auf das Fenster.
  290.  
  291. ■ Beschreibung:
  292.  
  293. Das Funktion get_linked_screen gibt den gelinkten virtuellen Bildschirm 
  294. des Windows win zurück. Dieser Bezeichner kann benutzt werden, 
  295. um z.B. weiter Windows an den Screen zu linken.
  296.  
  297. @init_window
  298. int init_window(nr);
  299.  
  300. ■ Parameter:
  301.  
  302. int nr;     Anzahl Fenster die geöffnet werden können.
  303.  
  304. ■ Beschreibung:
  305.  
  306. Die Funktion init_window initialisiert das Fenstersystem und sollte 
  307. in die Funktion init_tools eingebunden werden. Durch nr geben Sie an, 
  308. wieviele Fenster gleichzeitig eröffnet werden können. 
  309. Die maximale Anzahl der Fenster hängt von dem verfügbaren Speicherplatz 
  310. im Far Heap Speicher ab. Da die komplette Fensterverwaltung und 
  311. Speicherung in diesen Bereich verlagert ist, tritt keine 
  312. Beeinträchtigung des Speicherplatzes im aktuellen Speichersegment auf.
  313. (wichtig bei Small Memory Modell Programmen). Ist nr kleiner als 5 wird 
  314. Platz für 5 Fenster bereitgestellt. Dieser Wert ist während der Laufzeit 
  315. eines Programms nicht zu ändern, sollte daher nicht zu klein, aber 
  316. auch nicht zu groß gewählt werden. 
  317.  
  318. @init_window_manager
  319. int init_window_manger();
  320.  
  321. ■ Beschreibung:
  322.  
  323. Die Funktion init_window_manager initialisiert den Windowmanger und 
  324. muß vor Benutzung desselben aufgerufen werden. Die Benutzung des 
  325. Windowmanager muß nicht durch eine reset Funktion abgemeldet werden.
  326. Diese Funktion sollte in die Funktion init_tools aufgenommen werden.
  327.  
  328. @init_virtuell_screen
  329. int init_virtuell_screen(nr);
  330.  
  331. ■ Parameter:
  332.  
  333. int nr;       Anzahl Screen die geöffnet werden können.
  334.  
  335. ■ Beschreibung:
  336.  
  337. Die Funktion init_virtuell_screen initialisiert das Screenssystem und 
  338. sollte in die Funktion init_tools eingebunden werden.
  339. Durch nr geben Sie an, wieviele virtuell Screens gleichzeitig eröffnet 
  340. werden können. Die maximale Anzahl der Screens hängt von dem 
  341. verfügbaren Speicherplatz im Far Heap Speicher ab. Da die komplette 
  342. Screenverwaltung und Speicherung in diesen Bereich verlagert ist, 
  343. tritt keine Beeinträchtigung des Speicherplatzes im aktuellen 
  344. Speichersegment auf.(wichtig bei Small Memory Modell Programmen). 
  345. Die Anzahl ist während der Laufzeit eines Programms nicht zu ändern, 
  346. sollte daher nicht zu klein, aber auch nicht zu groß gewählt werden.
  347.  
  348. @link_virtuell_screen
  349. int link_virtuell_screen(vs,win,xoff,yoff);
  350.  
  351. ■ Parameter:
  352.  
  353. VSCREEN vs;               Bezeichner des virtuellen Screen
  354. WINDOW win;               Bezeichner des Windows
  355. unsigned int xoff,yoff;   x,y Offset der linken oberen Bezugskanten.
  356.  
  357. ■ Beschreibung:
  358.  
  359. Die Funktion link_virtuell_screen erzeugt eine Verbindung zwischen einem 
  360. Window und einem virtuellen Screen. Ist das Window größer als der 
  361. virtuelle Screen wird das Window vorher entsprechend verkleinert. Durch 
  362. diese Funktion wird ein statisches Window zu einem dynamischen Window, 
  363. es erhält alle SAA Eigenschaften, wie Scrollbalken und Manipulationspunkte 
  364. und kann jederzeit mit dem Windowmanager manipuliert werden. Die 
  365. xoff, yoff Werte geben den Abstand der linken oberen Kanten des 
  366. Screens und des Windows an.
  367.  
  368. @load_window
  369. int load_window(pfad);
  370.  
  371. ■ Parameter:
  372.  
  373. char *pfad;     Dateipfad der Maske
  374.  
  375. ■ Beschreibung:
  376.  
  377. Die Funktion load_window lädt eine Windowmaske, die mit dem 
  378. Screenmanager, oder der Funktion store_window erzeugt wurde, von 
  379. pfad und zeigt diese am Bildschirm an. Sämtlische Informationen 
  380. über Typ Form und Inhalt enthält dabei die Maske, so daß keine 
  381. zusätzlichen Informationen angegeben werden müssen. Dabei kann das 
  382. Window statisch, oder dynamisch sein, Zeichen enthalten oder Ein.- bzw 
  383. Ausgabepositionen definieren.
  384.  
  385. @move_window
  386. int move_window(win,anz,dir);
  387.  
  388. ■ Parameter:
  389.  
  390. WINDOW win;     Fensterbezeichner auf das Fenster.
  391. int anz;        Anzahl Spalten,bzw. Zeilen um die das
  392.         Fenster zu bewegen ist.
  393. int dir;        Richtungsangabe durch MACRO aus kiwi_inc.h.
  394.  
  395. ■ Beschreibung:
  396.  
  397. Die Funktion move_window bewegt das Fenster win um anz Zeilen, bzw 
  398. Spalten in die durch dir angebene Richtung. Das Fenster win muß ein 
  399. top window sein, das heißt es darf nicht überlappt werden.
  400. Wird es denoch überlappt, wird das Fenster win zuerst zum top_window 
  401. geändert. An den Bildschirmgrenzen wird die Bewegung gestoppt und 
  402. der Funktionsaufruf ignoriert.
  403.  
  404. @open_virtuell_screen
  405. VSCREEN open_virtuell_screen(xsize,ysize);
  406.  
  407. ■ Parameter:
  408.  
  409. int xsize,ysize;     Größe des zu erzeugenden virtuellen Bildschirms
  410.  
  411. ■ Beschreibung:
  412.  
  413. Die Funktion open_virtuell_screen öffnet einen virtuellen Bildschirm 
  414. der Größe xsize*ysize. Dieser Bildschirm müß zu einem Window 
  415. gelinkt werden, um Manipulationen vornehmen zu können.
  416.  
  417. @open_vs_window
  418. WINDOW open_vs_window(name,xa,ya,xe,ye,rand,xsize,ysize);
  419.  
  420. ■ Parameter:
  421.  
  422. char *name;       Fensterüberschrift.
  423. int xa,ya;        Koordinatenpaar links oben.
  424. int xe,ye;        Koordinatenpaar rechts unten.
  425. int rand;         Fensterrand, siehe open_window.
  426. int xsize,ysize;  Größe des zu erzeugenden virtuellen Bildschirms
  427.  
  428. ■ Beschreibung:
  429.  
  430. Die Funktion open_vs_window öffnet ein dynamisches Window am Bildschirm. 
  431. Diese Funktion arbeites analog zu open_window, daher siehe weiter 
  432. Informationen dort. Im Gegensatz zu open_window erzeugt diese 
  433. Funktion ein virtuellen Bildschirm der Größe xsize*ysize und linkt 
  434. diesen zu dem Window. Es ist direkt ein dynamischen Window. Wird dieses 
  435. Window gelöscht, so wird auch der virtuelle Screen gelöscht.
  436.  
  437. @open_window
  438. WINDOW open_window(name,xa,ya,xe,ye,rand);
  439.  
  440. ■ Parameter:
  441.  
  442. char *name;    Fensterüberschrift.
  443. int xa,ya;     Koordinatenpaar links oben.Die erste Position ist 1,1
  444. int xe,ye;     Koordinatenpaar rechts unten.
  445.            Die letzte Position ist bei einer 80x25 Darstellung 80,25.
  446. int rand;      MACRO aus kiwi_inc.h. Festlegung des Fensterrand.
  447.  
  448. ■ Beschreibung:
  449.  
  450. Die Funktion open_window öffnet ein Fenster am Bildschirm. Die 
  451. Zeichenkette name wird mittig am oberen Rand eingeblendet,wenn das 
  452. Fenster mit Rand erstellt wird. Die angegeben Koordinaten sind 
  453. relativ zum Bildschirm und werden auf die geltenden Regeln hin 
  454. überprüft und gegebenenfalls korrigiert. Das Fenster wird mit den 
  455. zur Erstellungszeit gültigen Attributwerten erzeugt.
  456. Als Besonderheit gibt es die möglichkeit das Fenster ausgerichtet 
  457. am Bildschirm zu erstellen. Dazu kann als xa oder ya eines der 
  458. MACROS AL,AM,AR eingesetzt werden. Diese bedeuten Ausrichtung 
  459. Links, Mitte, Rechts. Bei Benutzung als ya gilt AL als Ausrichtung 
  460. Oben und AR als Ausrichtung Unten. Wenn eines der Anfangskoordinaten 
  461. als MACRO aufgerufen wird, gilt der jeweilige Endwert als Abstand 
  462. oder Breite, bzw Höhe des Fensters.
  463.  
  464. @print_mask
  465. int print_mask(win,start,"Format",arg1,arg2,...);
  466.  
  467. ■ Parameter:
  468.  
  469. WINDOW win;          Fensterbezeichner auf das Fenster.
  470. int start;           Startposition innerhalb der Maske
  471. const char *format;  Formatanweisungen für die Ausgabe
  472. arg1,arg2,...        Variabale Anzahl Argumente
  473.  
  474. ■ Beschreibung:
  475.  
  476. Die Funktion print_mask ermöglicht die formatierte Ausgabe von Daten 
  477. in einer Maske. Die Verfahrensweise ist ähnlich der Standardfunktion 
  478. printf. Wie diese erlaubt auch print_mask eine variable Argumentenanzahl. 
  479. In einer Maske kann durch die Zeichen ACSII 64 oder ASCCI 15  
  480. eine Ein- Ausgabeposition definiert werden, wobei ASCII 15 eine 
  481. inverse Darstellung erzwingt. Diese Positionen werden von oben nach 
  482. unten und links nach rechts innerhalb der Maske durchnummeriert. Diese 
  483. Funktion beginnt ab Position start mit der Ausgabe und erhöht die 
  484. Position jeweils um 1. Wenn die Datentypen innerhalb der Maske definiert 
  485. wurden, muß für format ein "x" angegeben werden. Wenn format 
  486. ungleich "x" wird der Formatstring als bindendes Format akzeptiert und 
  487. entsprechend ausgewertet. Ein Formatstring ungleich "x" überschreibt 
  488. alle Maskenformatangaben. In dem Formatstring können alle innerhalb der 
  489. TOOLS definierten Datentypen angegeben werden. Dazu muß für jedes Argument 
  490. ein Eintrag innerhalb des Formatstrings an der jeweiligen Position vorhanden 
  491. sein. Dieser Formatstring orientiert sich ebenfalls an printf und hat 
  492. folgenden Aufbau.
  493. %[FORMAT]typ    Zulässig sind folgende Formate bei folgenden Typen
  494.  
  495. Strings %s      für Ausgabe der Länge des Strings
  496.         %25s   für Ausgabe von 25 Zeichen.
  497. Character %c    Ausgabe eines Characters (kein Format zulässig)
  498. Integer %d      Ausgabe Integer Standardlänge 6 Zeichen linksbündig
  499.         %8rd Ausgabe 8 Stellen rechstbündig
  500. Long %l         Ausgabe Long Standardlänge 10 Zeichen linksbündig
  501.         %r12l Ausgabe 12 Stellen rechstbündig
  502. Float %f        Ausgabe Float Standard 10 Stellen 4 NK linksbündig
  503.         %r8.3f Ausgabe Float 8 Stellen 3 Nk rechtsbündig
  504. Datum %M        Ausgabe Datum (Kein Format zulässig)
  505. TIME %T         Ausgabe Zeit Standardformat bis Sekunden
  506.         %h Nur Stunden
  507.         %m Bis Minuten
  508.         %z Bis Hunderstel
  509.  
  510.  
  511. Beachten Sie, DATUM und ZEIT müssen als Pointer auf den Wert übergeben 
  512. werden, alle anderen Daten müssen als Werte übergeben werden, dort ist 
  513. keine Call by reference möglich. Sind mehr Argumente als Formate 
  514. vorhanden, werden die restlichen Argumente ignoriert. Sind weniger 
  515. Position in der Maske vorhanden, als Argumente erfolgt die Ausgabe bei 
  516. Position 1,1. Stellen Sie sicher, daß die Anzahl Formate und die 
  517. Anzahl Argumente und deren Typen übereinstimmen. Sie können die 
  518. Maske beliebig ändern, wenn Sie die Positionen in der Reihenfolge 
  519. verändern, müssen Sie auch den entsprechen print_mask Aufruf ändern, 
  520. anderfalls erfolgt die Ausgabe an falschen Stellen.
  521.  
  522. @reset_window
  523. void reset_window();
  524.  
  525. ■ Beschreibung:
  526.  
  527. Die Funktion reset_window schließt die Benutzung des Fenstersysstem ab. 
  528. Eventuell noch alloziierte Speicherbereiche werden dabei freigegeben. 
  529. Diese Funktion sollte in die Funktion init_tools eingebunden werden.
  530.  
  531. @reset_virtuell_screen
  532. void reset_virtuell_screen();
  533.  
  534. ■ Beschreibung:
  535.  
  536. Die Funktion reset_virtuell_screen schließt die Benutzung des 
  537. Screensysstems ab. Eventuell noch alloziierte Speicherbereiche werden 
  538. dabei freigegeben. Diese Funktion sollte in die Funktion init_tools 
  539. eingebunden werden.
  540.  
  541. @scanf_mask
  542. int scanf_mask(win,start,"Format",arg1,arg2,...);
  543.  
  544. ■ Parameter:
  545.  
  546. WINDOW win;           Fensterbezeichner auf das Fenster.
  547. int start;            Startposition innerhalb der Maske
  548. const char *format;   Formatanweisungen für die Ausgabe
  549. arg1,arg2,...         Variabale Anzahl Argumente
  550.  
  551. ■ Beschreibung:
  552.  
  553. Die Funktion scanf_mask ermöglicht die formatierte Eingabe von Daten 
  554. in einer Maske. Die Verfahrensweise ist ähnlich der Standardfunktion 
  555. scanf. Wie diese erlaubt auch scanf_mask eine variable 
  556. Argumentenanzahl. In einer Maske kann durch die Zeichen ACSII 64 
  557. oder ASCCI 15  eine Ein- Ausgabeposition definiert werden, 
  558. wobei ASCII 15 eine inverse Darstellung erzwingt. Diese Positionen 
  559. werden von oben nach unten und links nach rechts innerhalb der Maske 
  560. durchnummeriert. Diese Funktion beginnt ab Position start mit der 
  561. Ausgabe und erhöht die Position jeweils um 1. Wenn die Datentypen 
  562. innerhalb der Maske definiert wurden, muß für format ein "x" angegeben 
  563. werden. Wenn Format ungleich "x" wird der Formatstring als bindendes 
  564. Format akzeptiert und entsprechend ausgewertet. Ein Formatstring 
  565. ungleich "x" überschreibt alle Maskenformatangaben. In dem 
  566. Formatstring können alle innerhalb der TOOLS definierten Datentypen 
  567. angegeben werden. Dazu muß für jedes Argument ein Eintrag 
  568. innerhalb des Formatstrings an der jeweiligen Position vorhanden sein. 
  569. Dieser Formatstring orientiert sich ebenfalls an scanff und ist im Aufbau der Funktion print_mask 
  570. angeglichen.
  571.  
  572. Beachten Sie, das alle Argumente Pointer auf den jeweiligen Wert sein 
  573. müssen. Sind mehr Argumente als Formate vorhanden, werden die 
  574. restlichen Argumente ignoriert. Sind weniger Position in der Maske 
  575. vorhanden, als Argumente erfolgt die Ausgabe bei Position 1,1.
  576. Stellen Sie sicher, daß die Anzahl Formate und die Anzahl Argumente 
  577. und deren Typen übereinstimmen. Sie können die Maske beliebig 
  578. ändern, wenn Sie die Positionen in der Reihenfolge verändern, 
  579. müssen Sie auch den entsprechen print_mask Aufruf ändern, anderfalls 
  580. erfolgt die Eingabe in falscher Reihenfolge. Diese Funktion zeigt zuerst 
  581. alle Daten in den jeweiligen Feldern vor der Eingabe. Während der 
  582. Eingabe können Sie die mittels den Cursortasten oder der Maus frei 
  583. in der Maske hin und herspringen. Die letzte Eingabe beendet die Funktion, 
  584. Escape bricht die Eingabe an beliebiger Stelle ab.
  585.  
  586. @set_window_color
  587. int set_window_color(win,mode);
  588.  
  589. ■ Parameter:
  590.  
  591. WINDOW win;    Fensterbezeichner auf das Fenster
  592. int mode;      NORM_COL für Normale Farbdarstellung
  593.            INV_COL  für Inverse Farbdarstellung
  594.            FLIP für Umschalten der Farbe 
  595.  
  596. ■ Beschreibung:
  597.  
  598. Die Funktion set_window_color schaltet die Fensterfarbattribute von 
  599. Normal-darstellung auf Inversdarstellung und zurück. Jedes Fenster 
  600. erbt bei seiner Erzeugung die aktuellen Standardattribute. Soll die 
  601. Ausgabe im Fenster invers dargestellt werden, muss die 
  602. Fensterausgabeattribute mit dieser Funktion umgestellt werden. Alle 
  603. nachfolgenden Ausgaben, die die Fensterattribute benutzen werden 
  604. beeinflußt, jedoch keine bereits bestehenden Ausgaben.
  605.  
  606. @set_window_manager
  607. int set_window_manager(mode);
  608.  
  609. ■ Parameter:
  610.  
  611. int mode;    ON schaltet den Windowmanager ein
  612.          OFF schaltet den Windowmanager aus
  613.  
  614. ■ Beschreibung:
  615.  
  616. Die Funktion set_window_manager schaltet den Windowmanager aus oder ein. 
  617. Der Windowmanager ist eine Hintergrundfunktion, die es dem Benutzer 
  618. jederzeit erlaubt, alle dynamischen Windows zu manipulieren. 
  619. Wird der Windowmanager ausgeschaltet, so hat das keinen Einfluß auf 
  620. die aktuelle Bildschirmdarstellung.
  621.  
  622. @set_window_output_attribut
  623. int set_window_output_attribut(win,mode);
  624.  
  625. ■ Parameter:
  626.  
  627. WINDOW win;    Fensterbezeichner auf das Fenster.
  628. int mode;      Ausgabemodus, MACRO aus kiwi_inc.h
  629.            STANDARD_ATTRIBUT, FENSTER_ATTRIBUT
  630.  
  631. ■ Beschreibung:
  632.  
  633. Die Funktion set_window_output_attribut setzt das Ausgabeattribut 
  634. innerhalb des Fensters win entweder auf die Standardwerte, oder auf 
  635. die Attributwerte des Fensters. Bei Erstellung des Fensters win wird 
  636. der aktuelle gültige Attributwert für dieses Fenster übernommen, und 
  637. benutzt. Wird später die aktuelle Attributbelegung geändert, werden 
  638. trotzdem alle Ausgaben innerhalb des Fenster nach wie vor in der 
  639. alten Attributbelegung durchgeführt, bis mit dieser Funktion die 
  640. Attributentnahme geändert wird.
  641.  
  642. @strip_shadow
  643. int strip_shadow(win);
  644.  
  645. ■ Parameter:
  646.  
  647. WINDOW win;     Fensterbezeichner auf das Fenster
  648.  
  649. ■ Beschreibung:
  650.  
  651. Die Funktion strip_shadow löscht den Schatten eines bestehendes 
  652. Fenster win. 
  653.  
  654. @unlink_virtuell_screen
  655. int unlink_virtuell_screen(win);
  656.  
  657. ■ Parameter:
  658.  
  659. WINDOW win;   Fensterbezeichner auf das Fenster.
  660.  
  661. ■ Beschreibung:
  662.  
  663. Die Funktion unlink_virtuell_screen löst die Verbindung eines 
  664. dynamischen Windows mit dem hinterlegten virtuell Screen. Das 
  665. Windows wird zum statischen Window und verliert alle SAA Eigenschaften. 
  666. Der virtuelle Bildschirm wird mit dieser Aktion nicht gelöscht.
  667.  
  668. @wlocate
  669. void wlocate(win,x,y);
  670.  
  671. ■ Parameter:
  672.  
  673. WINDOW win;   Fensterbezeichner auf das Fenster.
  674. int x,y;      Bildschirmkoordinaten
  675.  
  676. ■ Beschreibung:
  677.  
  678. Die Funktion wlocate positioniert den Fenstercursor auf die Position 
  679. x,y. innerhalb des Ausgabefensters win. Ist das Fenster win nicht 
  680. vorhanden, wird die Funktion locate aufgerufen.
  681. Die Koordinaten 1,1 gelten für die oberste linke Bildschirmposition 
  682. innerhalb des Ausgabefensters. Liegt die geforderte Position nicht 
  683. innerhalb des Ausgabefensters, wird der Cursor nicht dargestellt. 
  684.  
  685. @zoom_window
  686. int zoom_window(win,xa,ya,xe,ye);
  687.  
  688. ■ Parameter:
  689.  
  690. WINDOW win;      Fensterbezeichner auf das Fenster.
  691. int xa,ya,xe,ye; Neue Koordinaten des Fensters win.
  692. int mode;        Veränderungsmodus des Fensterinhalts.
  693.          FIX Inhalt bleibt an Position
  694.          ANPASSEN Inhalt wird mit linker oberer Ecke bewegt.
  695.  
  696. ■ Beschreibung:
  697.  
  698. Die Funktion zoom_window verändert die Größe des Fensters win. 
  699. Die Eckkoordinaten werden auf die neuen Koordinaten verschoben. 
  700. Der Fensterinhalt wird entweder auf der jeweiligen Position gehalten, 
  701. oder aber entsprechend der Bewegung der linken oberen Ecke verschoben. 
  702. Wenn die neuen Koordinaten eine Überlappung mit den alten Koordinaten 
  703. ergeben, wird die Ausführung verweigert. Ist das Fenster nicht das 
  704. top window, wird es vorher dazu herhoben.
  705.  
  706. @box
  707. int box(win,xa,ya,xe,ye,typ);
  708.  
  709. ■ Parameter:
  710.  
  711. WINDOW win;        Fensterbezeichner auf Das Fenster.
  712. int xa,ya,xe,ye;   Eckkoordinaten des Kastens
  713. int typ;           Linientyp des Kasten. MACRO aus kiwi_inc.h.
  714.            EINFACH erzeugt │ Linientyp.
  715.            DOPPELT erzeugt ║ Linientyp.
  716.  
  717. ■ Beschreibung:
  718.  
  719. Die Funktion box erzeugt einen rechteckigen Kasten im Fenster win der 
  720. durch die Eckkordinaten und den Linientyp definiert ist. Ist win=0 
  721. wird der komplette Bildschirm benutzt. Überschreiten die Koordinaten 
  722. die Fenster werden die Linien gekapt. Das Attribut der Linie wird 
  723. den zur Zeit gültigen Attributwerten entnommen. 
  724.  
  725. @display_array
  726. int display_array(buffer,count,size,x,y);
  727.  
  728. ■ Parameter:
  729.  
  730. char *buffer;   Zeichenkette in der die Begriffe gespeichert sind
  731. int count;      Anzahl gespeicherter Begriffe
  732. int size;       Breite eines einzelnen Begriffs
  733. int x,y;        Koordinaten der linken oberen Ecke des Auswahlfensters
  734.  
  735. ■ Beschreibung:
  736.  
  737. Die Funktion display_array ermöglicht die Anzeige verschiedener 
  738. gleichlanger Begriffe oder Objekte in einem Fenster. Die Zeichenkette 
  739. buffer enthält count Begriffe von size Länge. Alle diese Begriffe 
  740. werden in einem Fenster zentral am Bildschirm eingeblendet. Durch 
  741. ESCAPE oder die rechte Maustaste wird der Anzeigevorgang abgebrochen.
  742. Die Größe des Fensters variiert mit der Anzahl der erfassten Dateien. 
  743. An der rechten Fensterseite wird ein kleiner Balken eingeblendet, der 
  744. die Lage der angezeigten Begriffe innerhalb buffer anzeigt.
  745. Die Koordinaten x,y bestimmen die linke obere Ecke des 
  746. Auswahlfensters, es sind aber auch die MACROS AL,AM,AR 
  747. für x und y zugelassen. Diese zentrieren das Fenster am Bildschirm 
  748. entweder Rechtsbündig, Mittig oder Linksbündig, bzw Oben oder Unten.
  749.  
  750. @display_char
  751. int display_char(ch,anzahl,pos);
  752.  
  753. ■ Parameter:
  754.  
  755. unsigned char ch;   Auszugebendes Zeichen.
  756. int anzahl;         Anzahl wie oft Zeichen ausgegeben wird
  757. int pos;            Position der ersten Ausgabe. Es sollte die Funktion
  758.             screen_pos(x,y)verwendet werden, um
  759.             die Position aus X,Y Koordinaten zu berechnen.
  760.  
  761. ■ Beschreibung:
  762.  
  763. Die Funktion display_char schreibt ab der Stelle pos, bzw (screen_pos(x,y))  
  764. anzahl Zeichen ch auf den Bildschirm. Bei der Ausgabe wird die zur Zeit 
  765. gültige Attributbelegung für Vorder- und Hintergrund übernommen. 
  766. Diese Funktion benutzt den ganzen Bildschirm, und nicht einzelne Fenster.
  767.  
  768. @display_char2
  769. int display_char2(ch,anzahl,pos);
  770.  
  771. ■ Parameter:
  772.  
  773. unsigned short ch;   Auszugebendes Zeichen mit Attribut.
  774. int anzahl;          Angabe wie oft dieses Zeichen ausgegeben werden soll.
  775. int pos;             Position der ersten Ausgabe.
  776.  
  777. ■ Beschreibung:
  778.  
  779. Die Funktion display_char2 schreibt ab der Stelle pos, bzw 
  780. (screen_pos(x,y))  anzahl Zeichen ch auf den Bildschirm. Im Gegensatz 
  781. zu display_char erwartet display_char2 als Argument ch ein Zeichen 
  782. mit Attribut verknüpft. Dieses kann durch ch=(attribut << 8 ) | character 
  783. erreicht werden. Diese Funktion benutzt den ganzen Bildschirm, 
  784. und nicht einzelne Fenster.
  785. @display_char3
  786. int display_char3(ch,win,x,y);
  787.  
  788. ■ Parameter:
  789.  
  790. unsigned char ch;  Auszugebendes Zeichen.
  791. WINDOW win;        Fensterbezeichner auf Das Fenster.
  792. int x,y;           Ausgabeposition innerhalb des Fensters
  793.  
  794. ■ Beschreibung:
  795.  
  796. Die Funktion display_char3 schreibt ab an der Stelle x,y innerhalb 
  797. des Ausgabefenster win, das Zeichen ch auf den Bildschirm. Bei der 
  798. Ausgabe wird die zur Zeit gültige Attributbelegung für Vorder- und 
  799. Hintergrund übernommen. Liegt die Ausgabeposition außerhalb der 
  800. Fenstergrenzen wird der Aufruf ignoriert. Wird win =0 angegeben, 
  801. wird der gesamte Bildschirm als Ausgabefenster benutzt und 
  802. keine Überprüfung auf Überlappende Fenster durchgeführt. 
  803. Diese Funktion arbeitet wie display_char, benutzt aber Bildschirmfenster 
  804. anstatt den Bildschirm.
  805.  
  806. @display_char4
  807. int display_char4(ch,win,x,y);
  808.  
  809. ■ Parameter:
  810.  
  811. unsigned short ch;  Auszugebendes Zeichen mit Attribut.
  812. WINDOW win;         Fensterbezeichner auf das Fenster
  813. int x,y;            Ausgabeposition innerhalb des Fensters
  814.  
  815. ■ Beschreibung:
  816.  
  817. Die Funktion display_char4 schreibt ab an der Stelle x,y innerhalb 
  818. des Ausgabefenster win, das Zeichen ch auf den Bildschirm. Im Gegensatz 
  819. zu display_char3 erwartet display_char4 als Argument ch ein Zeichen 
  820. mit Attribut verknüpft. Liegt die Ausgabeposition außerhalb der 
  821. Fenstergrenzen wird der Aufruf ignoriert. Wird win =0 angegeben, 
  822. wird der gesamte Bildschirm als Ausgabefenster benutzt und keine 
  823. Überprüfung auf Überlappende Fenster durchgeführt. Diese Funktion 
  824. arbeitet wie display_char2 ,benutzt aber Bildschirmfenster zur Ausgabe.
  825.  
  826. @display_date
  827. int display_date(date,win,x,y);
  828.  
  829. ■ Parameter:
  830.  
  831. struct DATUM *date;  Auszugebendes Datum;
  832. WINDOW win;          Fensterbezeicher auf das Fenster.
  833. int x,y;             Ausgabeposition innerhalb des Fensters.
  834.  
  835. ■ Beschreibung:
  836.  
  837. Die Funktion display_date gibt das Datum date innerhalb des Fensters 
  838. win aus. Dabei erfolgt die Angabe der Position relativ zur linken 
  839. oberen Ecke des Fensters. Die Ausgabe erfolgt nur innerhalb des 
  840. angegebenen Fensters, wird also bei Überschreitung abgeschnitten.
  841. Die Struktur DATUM wird in kiwi_inc.h definiert und beschreibt das 
  842. Datum in der Form >tt.mm.jjjj<. Für x kann auch eines der 
  843. Macros AR,AM,AL verwendet werden, um die Ausgabe rechts-, linksbündig 
  844. oder mittig auszuführen.
  845.  
  846. @message
  847. void message(string);
  848.  
  849. ■ Parameter:
  850.  
  851. char * string;    Ausgabestring
  852.  
  853. ■ Beschreibung:
  854.  
  855. Die Funktion message blendet den String string an der unteren 
  856. Bildschirmzeile mittig ein. Die Ausgabe erfolgt direkt auf den 
  857. Bildschirm und nicht in einem Fenster.
  858.  
  859. @printw
  860. int printw(win,format[,argument]..);
  861.  
  862. ■ Parameter:
  863.  
  864. WINDOW win;      Fensterbezeichner auf das Ausgabefenster
  865. char *format;    Ausgabeformatkontrolle
  866.  
  867. ■ Beschreibung:
  868.  
  869. Die Funktion printw ersetzt die Standardfunktion printf für Ausgaben 
  870. in einem Fenster. Dabei ist das Ausgabeformat mit printf identisch, 
  871. lediglich der Fensterbezeichner wird zusätzlich angegeben. Für 
  872. genauere Beschreibung der Funktion siehe in der Funktionsbeschreibung 
  873. printf. Die Ausgabeposition richtet sich nach der Position der 
  874. Fenstercursors, die durch wlocate manipuliert werden kann.
  875. Es werden die zur Zeit gültigen Ausgabeattribute des Fensters bzw 
  876. Bildschirms benutzt.
  877.  
  878. @set_message_row
  879. void set_message_row(nr);
  880.  
  881. ■ Parameter:
  882.  
  883. unsigned int nr;Zeile der Ausgabe
  884.  
  885. ■ Beschreibung:
  886.  
  887. Die Funktion set_message_row setzt die Ausgabezeile für die 
  888. Funktion message fest. Die Funktion message wird z. B. benutzt, 
  889. um Informationen über Menüpunkte auszugeben.
  890.  
  891. @get_input_status
  892. unsigned char get_input_status();
  893.  
  894. ■ Beschreibung:
  895.  
  896. Die Funktion get_input_status übergibt das Statusbyte der letzten 
  897. Tastaturbetätigung. In diesem Statusbyte sind die Informationen 
  898. über betätigte Sondertasten gespeichert. Werden beide Shittasten 
  899. gleichzeitig betätigt wird die Betätigung der linken Taste ignoriert.
  900.  
  901. @get_last_input
  902. unsigned char get_last_input();
  903.  
  904. ■ Beschreibung:
  905.  
  906. Die Funktion get_last_input liefert den letzten Tastaturanschalg 
  907. nochmal. Dabei wird auch der Statuscode der letzten Eingabe gesetzt.
  908.  
  909. @input
  910. unsigned char input();
  911.  
  912. ■ Beschreibung:
  913.  
  914. Die Funktion input ließt Eingaben von der Tastatur ein. Dabei wartet 
  915. Sie nicht, bis eine Eingabe erfolgt ist. Wenn keine Tastatureingabe 
  916. vorliegt gibt Sie 0 zurück, andernfalls den ASCII Code der entsprechenden 
  917. Taste. Ob gleichzeitig Sondertasten, wie Alt,Controll,Shift oder 
  918. Funktionstasten betätigt worden sind, kann über die is_???_key 
  919. Funktionen abgefragt werden. Die Funktion input reagiert nicht auf 
  920. solche Tastatureingabesequenzen, die im Betriebssystem festgelegte 
  921. Funktionen auslösen, wie zum Beispiel ALT+F1 oder ALT+F2, CTRL+ALT+DEL, 
  922. oder nicht definierte Kombinationen wie z.B. ALT+CTRL+Cursorsteuerungen usw.
  923.  
  924. @is_insert_mode
  925. int is_insert_mode();
  926.  
  927. ■ Beschreibung:
  928.  
  929. Die Funktion is_insert_mode prüft ob der Einfügemodus aktiv ist 
  930. oder nicht.
  931.  
  932. @is_???_key
  933. int is_function_key();
  934. int is_alt_key();
  935. int is_control_key();
  936. int is_shift_key();
  937. int is_cursor_key();
  938.  
  939. ■ Beschreibung:
  940.  
  941. Die Funktionen is_???_key prüfen das Statusbyte der letzten Eingabe 
  942. ob die jeweilige Sondertaste betätigt wurde. Ist dies nicht der 
  943. Fall übergeben alle Funktionen 0 sonst 1. Die Funktion is_shift_key 
  944. ergibt 1 für die rechte und 2 für die linke Shifttaste.
  945.  
  946. @ungetch_keyboard
  947. void ungetch_keyboard(ch);
  948.  
  949. ■ Parameter:
  950.  
  951. unsigned char ch;   Tastencode der in die Warteschlange eingefügt wird.
  952.  
  953. ■ Beschreibung:
  954.  
  955. Die Funktion ungetch_keyboard fügt das Zeichen ch in die 
  956. Tastaturwarteschlange ein. Bei nächtsen Aufruf von input oder 
  957. wait_input wird dieses Zeichen als Tastenanschlag geliefert. Dabei 
  958. wird der aktuelle Tastaturstatuscode geliefert.
  959.  
  960. @wait_input
  961. unsigned char wait_input();
  962.  
  963. ■ Beschreibung:
  964.  
  965. Die Funktion wait_input ließt Eingaben von der Tastatur ein. Dabei 
  966. wartet Sie im Gegensatz zu input bis eine Eingabe erfolgt ist. Ob 
  967. gleichzeitig Sondertasten, wie Alt,Controll,Shift, oder Funktionstasten 
  968. betätigt worden sind, kann über die is_???_key Funktionen abgefragt 
  969. werden. Die Funktion wait_input reagiert nicht auf solche 
  970. Tastatureingabe-sequenzen, die im Betriebssystem festgelegte Funktionen 
  971. auslösen, wie zum Beispiel ALT+F1 oder ALT+F2, CTRL+ALT+DEL usw, 
  972. oder die nicht definiert sind wie z.B. ALT+CTRL+Cursorsteuertasten.
  973.  
  974. @edit_long2
  975. int edit_long2(zahl,win,x,y,len,mod,min,max);
  976.  
  977. ■ Parameter:
  978.  
  979. long *zahl;     Eingabestring
  980. WINDOW win;     Eingabefenster
  981. int x,y;        Position der ersten Eingabestelle
  982. int len;        Eingabelänge
  983. char *mod;      R,r oder L,l für rechts oder linksbündig
  984. long min,max;   Unter, bzw Obergrenze des Wertes
  985.  
  986. ■ Beschreibung:
  987.  
  988. Die Funktion edit_long ist die Funktion edit_long mit Prüfung ob 
  989. der Wert die Grenzen nicht verletzt. Die Eingabe gilt einschließlich 
  990. den Grenzen. Wird die Grenze verletzt, wird ein Fenster mit den 
  991. Grenzwerten eingeblendet und der Wert entsprechend angepaßt.
  992.  
  993. @edit_string
  994. int edit_string(string,win,x,y,len);
  995.  
  996. ■ Parameter:
  997.  
  998. char *string;   Eingabestring
  999. WINDOW win;     Fensterbezeichner auf das Fenster
  1000. int x,y;        Position der ersten Eingabestelle
  1001. int len;        Eingabelänge
  1002.  
  1003. ■ Beschreibung:
  1004.  
  1005. Die Funktion edit_string ermöglich die Eingabe einer Zeichenkette 
  1006. string innerhalb des Fensters win mit der Länge len. Die Eingabe 
  1007. erfolgt an der Position x,y innerhalb des Fenster. Für die Eingabe 
  1008. wird der Zeileneditor verwendet, dessen Möglichkeiten bei 
  1009. input_string erläutert werden. Als zulässige Werte für x gelten 
  1010. auch die MACROS AL,AM,AR für linksbündig,mittig und rechtbündige 
  1011. Eingabe innerhalb des Fensters.
  1012.  
  1013. @edit_time
  1014. int edit_time(time,win,x,y);
  1015.  
  1016. ■ Parameter:
  1017.  
  1018. struct ZEIT *time;    Eingabezeit
  1019. WINDOW win;           Fensterbezeichner auf das Fenster
  1020. int x,y;              Position der ersten Eingabestelle
  1021.  
  1022. ■ Beschreibung:
  1023.  
  1024. Die Funktion edit_time ermöglich die Eingabe einer Zeit in dem 
  1025. Fenster win. Die Eingabe im Format ST:MN:SK:HD erfolgt an der 
  1026. Position x,y und ist 12 Zeichen lang. Im Gegensatz zu input_time 
  1027. wird die Zeit vorher und nachher am Bildschirm angezeigt. Als 
  1028. zulässige Werte für x gelten auch die MACROS AL,AM,AR für 
  1029. linksbündig,mittig und rechtbündige Eingabe innerhalb des Fensters.
  1030.  
  1031. @init_editor
  1032. int init_editor(mode)
  1033.  
  1034. ■ Parameter:
  1035.  
  1036. int mode;   MACRO aus kiwi_inc.h
  1037.         EDIT_ROW Zeilenmodus
  1038.         EDIT_FIELD Feldmodus
  1039.  
  1040. ■ Beschreibung:
  1041.  
  1042. Die Funktion init_editor versetzt den Editor in einen durch mode 
  1043. bestimmten Aufruf. Diese Funktion ist ein Sammlung von verschiedenen 
  1044. set_edit_mode Funktionsaufrufen. Folgende Aufrufe werden immer 
  1045. ausgeführt:
  1046.  
  1047. @input_date
  1048. int input_date(date,win,x,y);
  1049.  
  1050. ■ Parameter:
  1051.  
  1052. struct DATUM *date;   Eingabedatum
  1053. WINDOW win;           Fensterbezeichner auf das Fenster.
  1054. int x,y;              Position der ersten Eingabestelle
  1055.  
  1056. ■ Beschreibung:
  1057.  
  1058. Die Funktion input_date ermöglich die Eingabe eines Datums in 
  1059. dem Fenster win. Die Eingabe im Format TT.MM.JJJJ erfolgt an der 
  1060. Position x,y innerhalb des Fensters und ist 10 Zeichen lang. 
  1061. Im Gegensatz zu edit_date wird das Datum vorher nicht am Bildschirm 
  1062. angezeigt. Als zulässige Werte für x gelten auch die 
  1063. MACROS AL,AM,AR für linksbündig,mittig und rechtbündige 
  1064. Eingabe innerhalb des Fensters.
  1065.  
  1066. @input_float
  1067. int input_float(zahl,win,x,y,len,nk);
  1068.  
  1069. ■ Parameter:
  1070.  
  1071. float *zahl;     Eingabestring
  1072. WINDOW win;      Fensterbezeichner auf das Fenster.
  1073. int x,y;         Position der ersten Eingabestelle
  1074. int len;         Eingabelänge
  1075. int nk;          Anzahl der Nachkommastellen
  1076.  
  1077. ■ Beschreibung:
  1078.  
  1079. Die Funktion input_float ermöglich die Eingabe einer Floatzahl 
  1080. zahl in dem Fensterstellt win. Die Eingabe erfolgt an der 
  1081. Position x,y innerhalb des Fensters und ist len Zeichen lang. 
  1082. Die Anzahl der möglichen Nachkommastellen bestimmt nk. Im 
  1083. Gegensatz zu edit_float wird die Zahl vorher nicht am Bildschirm 
  1084. gezeigt. Als zulässige Werte für x gelten auch die 
  1085. MACROS AL,AM,AR für linksbündig,mittig und rechtbündige Eingabe.
  1086.  
  1087. @input_int
  1088. int input_int(zahl,win,x,y,len);
  1089.  
  1090. ■ Parameter:
  1091.  
  1092. int *zahl;    Eingabestring
  1093. WINDOW win;   Fensterbezeichner auf das Fenster.
  1094. int x,y;      Position der ersten Eingabestelle
  1095. int len;      Eingabelänge
  1096.  
  1097. ■ Beschreibung:
  1098.  
  1099. Die Funktion input_int ermöglich die Eingabe einer Integerzahl 
  1100. zahl in dem Fenster win. Die Eingabe erfolgt an der Position x,y 
  1101. innerhalb des Fensters und ist len Zeichen lang. Im Gegensatz zu 
  1102. edit_long wird die Zahl vorher nicht am Bildschirm gezeigt.
  1103. Als zulässige Werte für x gelten auch die MACROS AL,AM,AR 
  1104. für linksbündig,mittig und rechtbündige Eingabe innerhalb 
  1105. des Fensters.
  1106.  
  1107. @input_long
  1108. int input_long(zahl,win,x,y,len);
  1109.  
  1110. ■ Parameter:
  1111.  
  1112. long *zahl;   Eingabestring
  1113. WINDOW win;   Fensterbezeichner auf das Fenster.
  1114. int x,y;      Position der ersten Eingabestelle
  1115. int len;      Eingabelänge
  1116.  
  1117. ■ Beschreibung:
  1118.  
  1119. Die Funktion input_long ermöglich die Eingabe einer Long 
  1120. Integerzahl zahl in dem Fenster win. Die Eingabe erfolgt an der 
  1121. Position x,y innerhalb des Fensters und ist len Zeichen lang. 
  1122. Im Gegensatz zu edit_long wird die Zahl vorher nicht am Bildschirm 
  1123. gezeigt. Als zulässige Werte für x gelten auch die 
  1124. MACROS AL,AM,AR für linksbündig,mittig und rechtbündige 
  1125. Eingabe innerhalb des Fensters.
  1126.  
  1127. @input_string
  1128. int input_string(string,win,x,y,len);
  1129.  
  1130. ■ Parameter:
  1131.  
  1132. char *string;    Eingabestring
  1133. WINDOW win;      Fensterbezeichner auf das Fenster.
  1134. int x,y;         Position der ersten Eingabestelle
  1135. int len;         Eingabelänge
  1136.  
  1137. ■ Beschreibung:
  1138.  
  1139. Die Funktion input_string stellt den Zeileneditor des Toolpakets 
  1140. dar. Dieser Editor ermöglich die freie Eingabe beliebiger Zeichen 
  1141. in einer Zeile von durch len bestimmter Länge. In Grenzen ist sein 
  1142. Verhalten auch von außen steuerbar. Innerhalb der Eingabe kann 
  1143. mittels der Cursortasten der Eingabecursor beliebig nach links 
  1144. und rechts verschoben werden. Eingaben können an allen Positionen 
  1145. innerhalb des Eingabefelds gemacht werden. Ist die INSERT Funktion 
  1146. aktiv wird der Cursor als Block dargestellt und der rechts der 
  1147. Eingabe liegende Text nach rechts verschoben, sonst ist der Cursor 
  1148. als Strich zu sehen und der Text wird überschrieben.
  1149. Im Gegensatz zu edit_string zeigt diese Funktion den String nicht 
  1150. vorher auf dem Bildschirm an.
  1151.  
  1152. @input_time
  1153. int input_time(time,win,x,y);
  1154.  
  1155. ■ Parameter:
  1156.  
  1157. struct ZEIT *time;   Eingabezeit
  1158. WINDOW win;          Fensterbezeichner auf das Fenster
  1159. int x,y;             Position der ersten Eingabestelle
  1160.  
  1161. ■ Beschreibung:
  1162.  
  1163. Die Funktion input_time ermöglich die Eingabe einer Zeit in dem 
  1164. Fenster win. Die Eingabe im Format ST:MN:SK:HD erfolgt an der 
  1165. Position x,y innerhalb des Fensters und ist 12 Zeichen lang. 
  1166. Im Gegensatz zu edit_time wird die Zeit vorher nicht am Bildschirm 
  1167. angezeigt. Als zulässige Werte für x gelten auch die 
  1168. MACROS AL,AM,AR für linksbündig,mittig und rechtbündige Eingabe 
  1169. innerhalb des Fensters.
  1170.  
  1171. @set_edit_mode
  1172. int set_edit_mode(MODE);
  1173.  
  1174. ■ Parameter:
  1175.  
  1176. int MODE;     MACRO aus kiwi_inc.h. Siehe Liste unten
  1177.  
  1178. ■ Beschreibung:
  1179.  
  1180. Die Funktion set_edit_mode beeinflußt das Verhalten des Zeileneditors, 
  1181. der in allen Eingabefunktionen verwendet wird.
  1182.  
  1183. @array_get_files
  1184. int array_get_files(name,key);
  1185.  
  1186. ■ Parameter:
  1187.  
  1188. char *name;   Zeichenkette in der der ausgewählte name übergeben wird.
  1189. char *key;    Zeichenkette mit Zugriffspfad und des Zugriffsschlüssel
  1190.  
  1191. ■ Beschreibung:
  1192.  
  1193. Die Funktion array_get_files ermöglicht die Auswahl einer bestimmten 
  1194. Datei über ein Auswahlfenster. Die Zeichenkette key enthält den 
  1195. Zugriffspfad un den Zugriffschlüssel in der von DOS bekannten Notation. 
  1196. Dabei sind alle Joker und Wildcards zugelassen. Zum Beispiel würde 
  1197. der String key="c:/word/texte/*.txt" alle Dateien erfassen, die unter 
  1198. dem Verzeichnis c:\c\word\texte verzeichet sind und die Endung .txt 
  1199. besitzen. Ist der Schlüssel unvollständig, z.b.:"c:/word/texte" wird 
  1200. der automatisch mit /*:* erweitert. Alle diese Dateien werden erfasst, 
  1201. sortiert und in einem Fenster zentral am Bildschirm eingeblendet. Der 
  1202. Benutzer kann nun mittels des Mauszeigers oder der Cursortasten einen 
  1203. Leuchtbalken auf die gewünschte Datei bewegen. Durch RETURN oder 
  1204. Linke Maustaste wird die Auswahl abgeschlossen. Der ausgewählte 
  1205. Dateiname wird in die Zeichenkette name kopiert. Diese Zeichenkette muß 
  1206. mindestens 13 Zeichen besitzen, welches aber nicht abgeprüft wird. 
  1207. Durch ESCAPE oder eine andere Maustaste wird der Auswahlvorgang 
  1208. abgebrochen. Die Größe des Fensters variiert mit der Anzahl der 
  1209. erfassten Dateien.
  1210.  
  1211. @browse_array
  1212. int browse_array(buffer,count,size,x,y,max);
  1213.  
  1214. ■ Parameter:
  1215.  
  1216. char *buffer;  Zeichenkette in der die Begriffe gespeichert sind
  1217. int count;     Anzahl gespeicherter Begriffe
  1218. int size;      Breite eines einzelnen Begriffs
  1219. int x,y;       Koordinaten der linken oberen Ecke des Auswahlfensters
  1220. int max;       Maximale Anzahl Begriffe gleichzeitig anzuzeigen.
  1221.  
  1222. ■ Beschreibung:
  1223.  
  1224. Die Funktion browse_array ermöglicht die Auswahl eines bestimmten 
  1225. Begriffs oder Objekts über ein Auswahlfenster. Die Zeichenkette buffer 
  1226. enthält count Begriffe von size Länge. Alle diese Begriffe werden 
  1227. in einem Fenster in einer Reihe am Bildschirm eingeblendet. Der 
  1228. Benutzer kann nun mittels des Mauszeigers oder der Cursortasten einen 
  1229. Leuchtbalken auf den gewünschten Begriff bewegen. Durch RETURN oder 
  1230. Linke Maustaste wird die Auswahl abgeschlossen. Durch ESCAPE oder 
  1231. eine andere Maustaste wird der Auswahlvorgang abgebrochen. Die Größe 
  1232. des Fensters ist abhängig von size und max. Der Fensterinhalt kann 
  1233. mit den Pfeilen rechts ,durch betätigen von SHIFT + Cursor UP 
  1234. bzw Cursor DOWN oder durch Anfahren mit der Maus gescrollt werden. 
  1235. Ein kleiner Querbalken an der rechten Fensterseite zeigt die 
  1236. Position innerhalb des Feldes.
  1237.  
  1238. @browse_get_files
  1239. int browse_get_files(name,key);
  1240.  
  1241. ■ Parameter:
  1242.  
  1243. char *name;   Gewählte Datei
  1244. char *key;    Zugriffspfad mit Zugriffsschlüssel
  1245.  
  1246. ■ Beschreibung:
  1247.  
  1248. Die Funktion browse_get_files ermöglicht die Auswahl einer bestimmten 
  1249. Datei über ein Auswahlfenster. Die Zeichenkette key enthält den 
  1250. Zugriffspfad un den Zugriffschlüssel in der von DOS bekannten Notation. 
  1251. Dabei sind alle Joker und Wildcards zugelassen.
  1252. Ist der Zugriffsschlüssel unvollständig, so wird er mit /*.* erweitert.
  1253. Diese Funktion benutzt zur Auswahl der Dateien die Funktion 
  1254. browse_array anstatt wie bei array_get_files die Funktion choose_array. 
  1255. Dadurch werden die Dateinamen nicht in einem zweidimensionalen Feld 
  1256. augelistet, sondern in einer Reihe übereinander.
  1257.  
  1258. @choose_button
  1259. int choose_button(header,menu,count,x,y);
  1260.  
  1261. ■ Parameter:
  1262.  
  1263. char *header;   Auswahlüberschrift
  1264. MENU menu[];    Menufeld in dem die Menu- und Auswahlinformationen 
  1265.         gespeichert sind
  1266. int count;      Anzahl verfügbarer Menuauswahlpunkte
  1267. int x,y;        Koordinaten der linken oberen Ecke des Auswahlfensters
  1268.  
  1269. ■ Beschreibung:
  1270.  
  1271. Die Funktion choose_button ermöglicht die Auswahl mehrerer Elemente 
  1272. eines Menüs. Diese Menüpunkte werden untereinander dargestellt 
  1273. und rechts davon jeweils ein Schalter. Ist ein Schalter betätigt 
  1274. und inaktiv, wird ein Kreuz erscheinen, der Begriff ist aktiv. 
  1275. Einen Schalter kann man mittels der Maus oder der Returntaste oder 
  1276. der Schlüsseltaste der Menüposition betätigen. Die Returntaste 
  1277. schaltet den Schalter, auf den der Cursor zeigt. Betätigen eines 
  1278. hervorgehobenen Buchstabens schaltet ebenfalls den jeweiligen Schalter. 
  1279. Die Auswahl wird mit Anfahren der Ok Taste oder durch betätigen 
  1280. von O beendet. Die entsprechenden Daten werden durch den Datentyp 
  1281. MENU bereitgehalten. Die Abfrage ob ein Menüpunkt aktiv oder 
  1282. inaktiv ist erfolgt durch den Wert menu[x].aktiv. Die Koordinaten 
  1283. x,y bestimmen die linke obere Ecke des Auswahlfensters, es sind 
  1284. aber auch die MACROS AL,AM,AR für x und y zugelassen.
  1285.  
  1286. @choose_main_menu
  1287. int choose_main_menu();
  1288.  
  1289. ■ Beschreibung:
  1290.  
  1291. Die Funktion choose_main_menu  ermöglich die Anwahl einer der 
  1292. Hauptmenupositionen. Die Anwahl kann durch Betätigen der Alt Taste und 
  1293. des zur Menüposition gehörenden Buchstabens, oder durch Anwählen 
  1294. mit der Maus erfolgen. Bei Anwahl mit der Maus hängt die Reaktion 
  1295. von der mittels set_menu erfolgten Konfiguration ab. 
  1296. Bei POP-UP genügt bereits ein Anfahren in den Positionsbereich, 
  1297. bei PULL-DOWN muß der Mauszeiger in den Bereich gefahren und die 
  1298. linke Maustaste betätigt und gehalten werden, bei DOPPELKLICK muß 
  1299. angefahren, geklickt und wieder gelöst werden. Die Position des 
  1300. jeweiligen Untermenüs wird automatisch ermittelt, ebenso die 
  1301. Größe des zugehörigen Fensters.
  1302.  
  1303. @choose_menu
  1304. int choose_menu(menu,count,x,y,win);
  1305.  
  1306. ■ Parameter:
  1307.  
  1308. MENU[] menu;    Menüfeld
  1309. int count;      Anzahl Menüpositionen
  1310. int x,y;        Koordinatenposition der linken oberen des Fensters
  1311. WINDOW *win;    Menüausgabefenster
  1312.  
  1313. ■ Beschreibung:
  1314.  
  1315. Die Funktion choose_menu ermöglich die Anwahl einer Option aus einer 
  1316. Auswahl, die innerhalb eines Fenster dargestellt werden. Die Darstellung 
  1317. ist der der Submenüs angepasst, kann aber ohne Menuleiste benutzt werden.
  1318. Die Position wird durch x,y angegeben, wenn aber vorher set_menu(NACH_MAUS) 
  1319. aufgerufen wurde, wird die Position des Eingabefenster an die aktuelle 
  1320. Mauszeigerposition angepaßt. Die Anwahl kann durch Betätigen der 
  1321. Alt Taste und des zur Menüposition gehörenden Buchstabens, oder 
  1322. durch Anwählen mit der Maus erfolgen. Bei Anwahl mit der Maus wird 
  1323. die gewünschte Position mit dem Mauscursor angefahren und durch 
  1324. Anklicken der linken Taste angewählt. Das Ausgabefenster 
  1325. wird(wenn mit set_menu(BEHALT_WIN) eingestellt) in win übergeben, 
  1326. so das es später gelöscht werden kann. Die Variable win sollte vor 
  1327. dem ersten Aufruf -1 gesetzt werden, da diese Funktion nur ein Fenster 
  1328. öffnet wenn die Variable <=0 ist. Dadurch kann die Funktion in einer 
  1329. Schleife laufen, ohne Fensterflackern. Bei Betätigen der Escapetaste 
  1330. oder Klicken ausserhalb des Fensterbereichs wird -1 übergeben, 
  1331. sonst die Nummer der Menuposition.
  1332.  
  1333. @choose_sub_menu
  1334. int choose_sub_menu(submenu,subcount,win);
  1335.  
  1336. ■ Parameter:
  1337.  
  1338. MENU[] submenu;  Menüfeld
  1339. int subcount;    Anzahl Menüpositionen
  1340. WINDOW *win;     Menüausgabefenster
  1341.  
  1342. ■ Beschreibung:
  1343.  
  1344. Die Funktion choose_sub_menu  ermöglich die Anwahl eines der 
  1345. Untermenüoptionen nach Anwahl eines Hauptmenüpunktes. Positionen 
  1346. der Submenüs werden automatisch bestimmt. Die Anwahl kann durch 
  1347. Betätigen der Alt Taste und des zur Menüposition gehörenden 
  1348. Buchstabens, oder durch Anwählen mit der Maus erfolgen.
  1349. Bei Anwahl mit der Maus hängt die Reaktion von der mittels 
  1350. set_menu erfolgten Konfiguration ab. Bei POP-UP wird die 
  1351. gewünschte Position mit dem Mauscursor angefahren und durch 
  1352. Anklicken der linken Taste angewählt. Bei PULL-DOWN und DOPPELKLICK 
  1353. ist die linke Maustaste noch gedrückt. Die Position wird angefahren 
  1354. und die Mausstaste losgelassen. Das Ausgabefenster wird je nach 
  1355. Konfiguration bei Verlassen der Funktion gelöscht oder in 
  1356. win übergeben, so das es später gelöscht werden kann.
  1357. Die Variable win sollte vor dem ersten Aufruf -1 gesetzt werden, 
  1358. da diese Funktion nur ein Fenster öffnet wenn die Variable <=0 ist. 
  1359. Dadurch kann die Funktion in einer Schleife laufen, ohne Fensterflackern.
  1360. Bei Betätigen der Escapetaste oder Klicken ausserhalb des 
  1361. Fensterbereichs wird -1 übergebn, sonst die Nummer der Menuposition.
  1362.  
  1363. @dialog
  1364. int dialog(string,x,y);
  1365.  
  1366. ■ Parameter:
  1367.  
  1368. char *string;   Hinweistext des Dialogs
  1369. int x,y;        Koordinaten der linken oberen Ecke des Dialogfensters
  1370.  
  1371. ■ Beschreibung:
  1372.  
  1373. Die Funktion dialog ermöglich die Abfrage einer Entscheidung durch den 
  1374. Benutzer. Ein Dialogfenster wird eingeblendet, in dem der Hilfetext 
  1375. im oberen Teil eingeblendet wird. Der Hilfetext kann beliebig lang sein 
  1376. und wird durch das Zeilenvorschubzeichen \n in einzelen Zeilen unterteilt.
  1377. Im unteren Teil sind zwei Knöpfe, für Ja oder Nein untergebracht. 
  1378. Der Benutzer führt die Entscheidung entweder durch die Tasten 
  1379. J,j oder N,n oder durch anfahren der Knöpfe mit dem Mauszeiger 
  1380. und durch Betätigen der linken Maustaste herbei. Die Einstellung 
  1381. mit set_menu(NACH_MAUS) ist auch hier wirksam, das heißt in diesem 
  1382. Fall wird die Position der linken oberen Ecke von der aktuellen 
  1383. Position des Mauszeiger abhängig gemacht.
  1384.  
  1385. @init_main_menu
  1386. int init_main_menu(menu_leiste,anzahl);
  1387.  
  1388. ■ Parameter:
  1389.  
  1390. MENU menu_leiste[];  Struct Feld vom Typ MENU
  1391.              Dieses Feld beinhaltet die not wendigen Informationen
  1392. int anzahl;          Anzahl Menupunkte
  1393.  
  1394. ■ Beschreibung:
  1395.  
  1396. Die Funktion init_main_menu initialisiert das Menusystem mit Menüleiste 
  1397. und POP-UP oder PULL-Down Menüs. Dazu wird das Feld menu_leiste 
  1398. initialisiert. 
  1399.  
  1400. @roll_bar
  1401. double roll_bar(string,value,min,max,step,size,x,y);
  1402.  
  1403. ■ Parameter:
  1404.  
  1405. char *string;         Hinweistext des Rollbalkens
  1406. double int value;     Eingabewert 
  1407. double int min,max;   Unter- bzw Obergrenze des Werts
  1408. double int step;      Schrittweite der Änderung
  1409. int size;             Breite des Rollbalkens (min 30)
  1410. int x,y;              Koordinaten der linken oberen Ecke des Dialogfensters
  1411.  
  1412. ■ Beschreibung:
  1413.  
  1414. Die Funktion roll_bar emuliert einen Schieberegler um eine Floatzahl value 
  1415. einzugeben. Dazu wird der Bereich von min bis max als Schiebestrecke am 
  1416. Bildschirm angezeigt. Der momentane Wert von value wird durch die Angabe 
  1417. des Reglers proportional zum Wert angezeigt. Links und rechts der 
  1418. Schiebestrecke befinden sich Pfeile. Durch Anfahren der Maus auf einen 
  1419. Pfeil und Betätigen der linken Maustaste wird der Wert um step verändert. 
  1420. Durch die Tasten Cursor links und rechts wird der gleiche Effekt erzielt. 
  1421. Durch betätigen von Home oder End wird der Wert auf min oder max gesetzt. 
  1422. Durch PgDn oder PGUp wird der Wert um das 10 fache von step verändert.
  1423. Durch Anfahren von OK oder Eingabe von o,O, Return wird der geänderte 
  1424. Wert übergeben, durch ESC, n,N, Esc Taste der Eingangswert.
  1425.  
  1426. @set_menu
  1427. int set_menu(mode);
  1428.  
  1429. ■ Parameter:
  1430.  
  1431. int mode;      MACRO aus kiwi_inc.h
  1432.  
  1433. ■ Beschreibung:
  1434.  
  1435. Die Funktion set_menu steuert die Art der Menuerfassung der 
  1436. Funktionen choose_main_menu, choose_sub_menu, choose_menu.
  1437.  
  1438. Zur Verfügung stehende Funktionen sind:
  1439.  
  1440. EINFACH         Rahmenart der Eingabefenster ─
  1441. DOPPELT         Rahmenart der Eingabefenster ═
  1442. PULL_DOWN       Behandele Menü wie Pull Down Menüs
  1443. POP_UP          Behandele Menu wie Pop Up Menüs
  1444. DOPPELKLICK     Klicke Zweimal zur Auswahl
  1445. BEHALT_WIN      Behalte Eingabefenster bei exit
  1446. LOESCH_WIN      Lösche Eingabefenster bei exit
  1447. FESTGELEGT      Positioniere Menüfenster auf Werte
  1448. NACH_MAUS       Positioniere Menüfenster nach Mauszeiger
  1449. COMMENT         Kommentare werden ausgegeben
  1450. NO_COMMENT      Kommentare werden nicht ausgegeben(Vorgabe)
  1451. NUR_MENU        Hauptmenü wartet bis Auswahl getroffen(Vorgabe)
  1452. AUCH_MENU       Hauptmenü prüft ob Auswahl anliegt, wenn nicht weiter
  1453.  
  1454. @browse_help
  1455. int browse_help();
  1456.  
  1457. ■ Beschreibung:
  1458.  
  1459. Die Funktion browse_help ermöglich das Durchblättern der Hilfetextdatei 
  1460. nach Stichworten. Diese Stichworte, nach denen der entsprechende Text 
  1461. referenziert wird, werden in einer Reihe am Bildschirm in einem Fenster 
  1462. ausgegeben. Der Anwender sucht sich die entsprechende Information aus und 
  1463. bekommt den zugehörigen Text am Bildschirm angezeigt. Eine zweite 
  1464. Möglichkeit besteht in der Eingabe eines Begriffs, nach dem der Inhalt 
  1465. der Stichworte durchsucht wird. Bei Übereinstimmung wird der entsprechende 
  1466. Text am Bildschirm angezeigt. Die Eingabe des Begriffs ist nicht von 
  1467. Groß- oder Kleinschreibung abhängig.
  1468.  
  1469. @check_if_get_help
  1470. void check_if_get_help();
  1471.  
  1472. ■ Beschreibung:
  1473.  
  1474. Die Funktion check_if_get_help wird von input aufgefufen, wenn die 
  1475. Hilfetaste aktiviert wurde. Diese Funktion ist im Sourcecode und 
  1476. macht nicht anderes als die Funktion get_help aufzurufen wenn die 
  1477. Hilfe eingebunden werden soll. Wenn ein Programm ohne Hilfefunktion 
  1478. erstellt werden soll, wird der Aufruf get_help entfernt, neu compiliert 
  1479. und der gesamte Hilfecode wird nicht mit eingebunden, was den 
  1480. Speicherbedarf um etwa 25 KB reduziert. Es können auch zwei getrennt 
  1481. Objektmodule erstellt werden, die dann bedarfsabhängig eingebunden werden.
  1482.  
  1483. @create_error
  1484. int create_error(name);
  1485.  
  1486. ■ Parameter:
  1487.  
  1488. char *name;    Aktueller Suchbegriff
  1489.  
  1490. ■ Beschreibung:
  1491.  
  1492. Die Funktion create_error erzeugt eine Fehlermeldung, mit dem Text 
  1493. für Eintrag name. Wenn direkt ein Fehler erzeugt werden soll, 
  1494. kann diese Funktion benutzt werden. Diese setzt den Suchbegriff 
  1495. auf name und ruft dann den Fehlertext ab.
  1496.  
  1497. @get_help
  1498. int get_help();
  1499.  
  1500. ■ Beschreibung:
  1501.  
  1502. Die Funktion get_help aktiviert die Hilfefunktion. Nach Aufruf wird 
  1503. die Textdatei nach dem aktuellen Suchbegriff, der als letztes mit 
  1504. der Funktion set_help_name gesetzt wurde, durchsucht. Wenn Informationen 
  1505. gefunden werden, so wird der zugehörige Text am Bildschirm eingeblendet. 
  1506. Ist der Text länger als das Bildschirmfenster so kann im Text 
  1507. geblättert werden. Je nach Einstellung der Hilfe warte diese Funktion 
  1508. auf eine Aktion (Tastendruck oder Mausklick) und löscht das Fenster 
  1509. wieder oder kehrt direkt zurück. Ist die Option BEHALT_WIN mit 
  1510. set_help gesetzt worden, so kann das Bildschirmfenster mit 
  1511. get_last_window referenziert werden.
  1512.  
  1513. @init_error
  1514. int init_error(name);
  1515.  
  1516. ■ Parameter:
  1517.  
  1518. char *name;    Datenpfadbeschreibung der Hilfetextdatei
  1519.  
  1520. ■ Beschreibung:
  1521.  
  1522. Die Funktion init_error initialisiert das Fehlermeldungssystem. 
  1523. Die Textdatei name muß den Anhang .ERR besitzen der aber nicht 
  1524. angegeben werden darf. Diese Datei wird eröffnet, die zugehörige 
  1525. Indexdatei wird auf Aktualität überprüft  und gegebenenfalls 
  1526. neu erstellt, so das der Index immer auf dem neuesten Stand ist. 
  1527. Beide Dateien werden dann eröffnet und für den Zugriff vorbereitet.
  1528.  
  1529. @init_help
  1530. int init_help(name);
  1531.  
  1532. ■ Parameter:
  1533.  
  1534. char *name;    Datenpfadbeschreibung der Hilfetextdatei
  1535.  
  1536. ■ Beschreibung:
  1537.  
  1538. Die Funktion init_help initialisiert das Hilfesystem. Die Textdatei 
  1539. name muß den Anhang .HLP besitzen der aber nicht angegeben werden darf. 
  1540. Diese Datei wird eröffnet, die zugehörige Indexdatei wird auf 
  1541. Aktualität überprüft  und gegebenenfalls neu erstellt, so das der 
  1542. Index immer auf dem neuesten Stand ist. Beide Dateien werden dann 
  1543. eröffnet und für den Zugriff vorbereitet.
  1544. Informationen über die Formate der Textdateien entnehmen Sie bitte 
  1545. der Einleitung.
  1546.  
  1547. @set_error
  1548. int set_error(mode);
  1549.  
  1550. ■ Parameter:
  1551.  
  1552. int mode;    MACRO aus kiwi_inc.h
  1553.  
  1554. ■ Beschreibung:
  1555.  
  1556. Die Funktion set_error verändert das Verhalten des Errormessagesystems 
  1557. in bestimmten Grenzen abhängig von mode.
  1558.  
  1559. @set_error_color
  1560. void set_error_color(attrib,inv_attrib);
  1561.  
  1562. ■ Parameter:
  1563.  
  1564. int attrib,inv_attrib;    Attributwerte des Errormessagefensters
  1565.  
  1566. ■ Beschreibung:
  1567.  
  1568. Die Funktion set_error_color setzt die Farbe des Fehlermeldungsfensters 
  1569. auf attrib und inv_attrib. Standardmäßig ist die Farbe auf Invers der 
  1570. Farbtabelle bei Aufruf von init_help gesetzt.
  1571.  
  1572. @set_error_name
  1573. void set_error_name(name);
  1574.  
  1575. ■ Parameter:
  1576.  
  1577. char *name;   Aktueller Suchbegriff
  1578.  
  1579. ■ Beschreibung:
  1580.  
  1581. Die Funktion set_error_name setzt den Begriff name als aktueller 
  1582. Suchbegriff fest. Nach diesem Aufruf wird an jeder beliebigen Stelle, 
  1583. wenn die Funktion get_error aufgerufen worden ist, die Textdatei nach 
  1584. dem Begriff name durchsucht, und wenn gefunden wird der zugehörige 
  1585. Fehlermeldungstext am Bildschirm eingeblendet.
  1586. Wenn der Begriff nicht gefunden wird, wird eine Meldung angezeigt, 
  1587. das leider kein Hinweis verfügbar ist.
  1588.  
  1589. @set_error_pos
  1590. void set_error_pos(x,y);
  1591.  
  1592. ■ Parameter:
  1593.  
  1594. int x,y;  Koordinaten der linken oberen Ecke des Errormessagefensters
  1595.  
  1596. ■ Beschreibung:
  1597.  
  1598. Die Funktion set_error_pos setzt die Position des Errormessagefensters 
  1599. auf x,y der oberen linken Ecke. Standardmäßig ist die Position auf 
  1600. Bildschirmmitte gesetzt. Es können auch die MACROS AM,AL,AR für x oder y 
  1601. verwendet werden.
  1602.  
  1603. @set_help
  1604. int set_help(mode);
  1605.  
  1606. ■ Parameter:
  1607.  
  1608. int mode;    MACRO aus kiwi_inc.h
  1609.  
  1610. ■ Beschreibung:
  1611.  
  1612. Die Funktion set_help verändert das Verhalten des Hilfesystems in 
  1613. bestimmten Grenzen abhängig von mode.
  1614.  
  1615. @set_help_color
  1616. void set_help_color(attrib,inv_attrib);
  1617.  
  1618. ■ Parameter:
  1619.  
  1620. int attrib,inv_attrib;   Attributwerte des Errormessagefensters
  1621.  
  1622. ■ Beschreibung:
  1623.  
  1624. Die Funktion set_help_color setzt die Farbe des Hilfefensters auf 
  1625. attrib und inv_attrib. Standardmäßig ist die Farbe auf Invers der 
  1626. Farbtabelle bei Aufruf init_help gesetzt.
  1627.  
  1628. @set_help_mask
  1629. void set_help_mask(mode);
  1630.  
  1631. ■ Parameter:
  1632.  
  1633. unsigned short mode;   Tastenkombination die zum Auslösen 
  1634.                der Hilfefunktion führt.
  1635.  
  1636. ■ Beschreibung:
  1637.  
  1638. Die Funktion set_help_mask setzt die gültige Tastenkombination fest, 
  1639. die zum Aufruf der Case Sensitiv Help führt. Alle gültigen 
  1640. Tasten und Tastenkombination mit Alt, Funktions und Controltasten 
  1641. können gewählt werden. Dazu muß das "obere" Byte von mode auf den 
  1642. input_status und das "untere" Byte auf den Tastencode gesetzt werden.
  1643.  
  1644. @set_help_name
  1645. void set_help_name(name);
  1646.  
  1647. ■ Parameter:
  1648.  
  1649. char *name;    Aktueller Suchbegriff
  1650.  
  1651. ■ Beschreibung:
  1652.  
  1653. Die Funktion set_help_name setzt den Begriff name als aktueller 
  1654. Suchbegriff fest. Nach diesem Aufruf wird an jeder beliebigen Stelle, 
  1655. wenn die Funktion get_help aufgerufen worden ist, die Textdatei nach 
  1656. dem Begriff name durchsucht, und wenn gefunden wird der zugehörige 
  1657. Hilfetext am Bildschirm eingeblendet. Wenn der Begriff nicht gefunden 
  1658. wird, wird eine Meldung angezeigt, das leider keine Hilfe verfügbar ist.
  1659.  
  1660. @set_help_pos
  1661. void set_help_pos(x,y);
  1662.  
  1663. ■ Parameter:
  1664.  
  1665. int x,y;Koordinaten der linken oberen Ecke des Hilfefensters
  1666.  
  1667. ■ Beschreibung:
  1668.  
  1669. Die Funktion set_help_pos setzt die Position des Hilfefensters auf x,y 
  1670. der oberen linken Ecke. Standardmäßig ist die Position auf 
  1671. Bildschirmmitte gesetzt. Es können auch die MACROS AM,AL,AR für x 
  1672. oder y verwendet werden.
  1673.  
  1674. @reset_error
  1675. void reset_error();
  1676.  
  1677. ■ Beschreibung:
  1678.  
  1679. Die Funktion reset_error schließt die beiden zum Errormessagesystem 
  1680. gehörenden Dateien. Wenn während des Programmablaufs ein Wechsel 
  1681. der Textdateien notwendig werden sollte muß vor Aufruf von init_error 
  1682. das alte System mit reset_error abgeschlossen worden sein. Diese 
  1683. Funktion sollte in reset_tools eingebunden werden.
  1684.  
  1685. @reset_help
  1686. void reset_help();
  1687.  
  1688. ■ Beschreibung:
  1689.  
  1690. Die Funktion reset_help schließt die beiden zum Hilfesystem 
  1691. gehörenden Dateien. Wenn während des Programmablaufs ein 
  1692. Wechsel der Textdateien notwendig werden sollte muß vor Aufruf 
  1693. von init_help das alte System mit reset_help abgeschlossen worden sein.
  1694. Diese Funktion sollte in reset_tools eingebunden werden.
  1695.  
  1696. @check_printer_status
  1697. unsigned char check_printer_status(nr);
  1698.  
  1699. ■ Parameter:
  1700.  
  1701. int nr;    Nummer des Druckers 
  1702.  
  1703. ■ Beschreibung:
  1704.  
  1705. Die Funktion check_printer_status überprüft den Status des Druckers 
  1706. nr und übergibt ein Statusbyte. Der als PRN angeschlossene Drucker 
  1707. hat die Nummer 0.
  1708. Ist eines der ersten drei Bytes gesetzt, ist der Drucker nicht 
  1709. betriebsbereit.
  1710.  
  1711. @feed_printer
  1712. void feed_printer(anzahl);
  1713.  
  1714. ■ Parameter:
  1715.  
  1716. int anzahl;   Anzahl Zeichen zum Vorschieben
  1717.  
  1718. ■ Beschreibung:
  1719.  
  1720. Die Funktion feed_printer verschiebt den Druckkopf um anzahl 
  1721. Zeichen nach rechts.
  1722.  
  1723. @flush_printer
  1724. void flush_printer();
  1725.  
  1726. ■ Beschreibung:
  1727.  
  1728. Die Funktion flush_printer leert den Druckpuffer des Ausgabekanals. 
  1729. Alle noch gepufferten Zeichen werden auf den Ausgabekanal ausgegeben.
  1730.  
  1731. @init_printer
  1732. int init_printer(pfad);
  1733.  
  1734. ■ Parameter:
  1735.  
  1736. char *pfad;   Dateipfad für Druckersteuerung
  1737.  
  1738. ■ Beschreibung:
  1739.  
  1740. Die Funktion init_printer verbindet den internen Druckausgabekanal 
  1741. mit dem Standarddruckerstream stdprn. Diese Funktion muß vor 
  1742. jeglicher Druckausgabe aufgerufen werden. Beim Aufruf wird versucht 
  1743. eine Datei pfad zu laden, in der Informationen über die 
  1744. Möglichkeiten und Steuersequenzen des angeschlossenen Druckers 
  1745. enthalten sind. Wenn diese Datei nicht geladen werden kann, 
  1746. kommen die Voreinstellung zur Geltung, die für einen NEC P6,7 PLUS 
  1747. bestimmt sind. 
  1748.  
  1749. @link_printer
  1750. int link_printer(stream);
  1751.  
  1752. ■ Parameter:
  1753.  
  1754. FILE *stream;   Ausgabedatei
  1755.  
  1756. ■ Beschreibung:
  1757.  
  1758. Die Funktion link_printer verbindet den internen Druckausgabekanal 
  1759. zusäztlich mit der angegebenen Datei stream. Damit kann die 
  1760. gesamte Druckausgabe auf eine Datei, oder auf einen zweiten Drucker  
  1761. umgeleitet werden, während der erste Drucker ebenfalls angesteuert 
  1762. wird. Dieser Befehl hat keinen Einfluß auf die angewählten 
  1763. Druckertreiberinformationen.
  1764.  
  1765. @print_char
  1766. int print_char(ch,anzahl);
  1767.  
  1768. ■ Parameter:
  1769.  
  1770. unsigned char ch;  Zeichen zum Drucken
  1771. int anzahl;        Anzahl Zeichen die gedruckt werden sollen.
  1772.  
  1773. ■ Beschreibung:
  1774.  
  1775. Die Funktion print_char gibt anzahl Zeichen ch auf den 
  1776. Druckausgabekanal aus.
  1777.  
  1778. @print_date
  1779. int print_date(date);
  1780.  
  1781. ■ Parameter:
  1782.  
  1783. struct DATUM *date;   Zeiger auf Datum
  1784.  
  1785. ■ Beschreibung:
  1786.  
  1787. Die Funktion print_date gibt den Inhalt des Datums date auf den 
  1788. Druckausgabekanal in dem Format >dd.mm.jjjj< aus.
  1789.  
  1790. @print_float
  1791. int print_float(number,len,nk);
  1792.  
  1793. ■ Parameter:
  1794.  
  1795. double number;   Zahl zum Drucken
  1796. int len;         Anzahl Zeichen der Zahl
  1797. int nk;          Anzahl Nachkommastellen
  1798.  
  1799. ■ Beschreibung:
  1800.  
  1801. Die Funktion print_float gibt die Zahl number mit len Zeichen 
  1802. und nk Nachkommastellen rechtsbündig auf dem Druckausgabekanal aus.
  1803.  
  1804. @print_time
  1805. int print_time(time,mod);
  1806.  
  1807. ■ Parameter:
  1808.  
  1809. struct ZEIT *time;    Zeiger auf Zeit
  1810. char *mod;            h Stunden, m Minuten s Sekunden z Hunderstel
  1811.  
  1812. ■ Beschreibung:
  1813.  
  1814. Die Funktion print_time gibt den Inhalt der Zeit time auf den 
  1815. Druckausgabekanal in von mod abhängigen Format.
  1816.  
  1817. @printp
  1818. int printp(maske[,argument]..);
  1819.  
  1820. ■ Parameter:
  1821.  
  1822. char *maske;      Formatmaske
  1823.  
  1824. ■ Beschreibung:
  1825.  
  1826. Die Funktion printp ersetzt die Standardfunktion printf für 
  1827. Ausgaben auf den Druckausgabekanal. Die Befehlssyntax ist 
  1828. identisch mit printf, siehe also dort für weiter Informationen.
  1829.  
  1830. @set_default_modes
  1831. void set_default_modes();
  1832.  
  1833. ■ Beschreibung:
  1834.  
  1835. Die Funktion set_default_modes aktiviert die voreingestellten 
  1836. Druckerinformationen. Die Voreinstellung sind für einen normalen 
  1837. Nadeldrucker wie NEC P6. Druckerinformationen von vorherigen Aufrufen 
  1838. werden durch diesen Aufruf gelöscht.
  1839.  
  1840. @set_default_printer_status
  1841. void set_default_printer_status();
  1842.  
  1843. ■ Beschreibung:
  1844.  
  1845. Die Funktion set_default_printer_status setzt die Druckausgabekanäle 
  1846. wieder auf ihre Standardwerte. Das heißt für MS-DOS Kanal 1 an stprn 
  1847. und Kanal zwei abschalten. Diese Kanäle sind standardmäßig Voreingestellt 
  1848. und brauchen nur bei Umleitung wieder zurückgestellt werden.
  1849.  
  1850. @redirect_printer
  1851. int redirect_printer(stream);
  1852.  
  1853. ■ Parameter:
  1854.  
  1855. FILE *stream;   Ausgabedatei
  1856.  
  1857. ■ Beschreibung:
  1858.  
  1859. Die Funktion redirect_printer leitet den internen Druckausgabekanal 
  1860. auf die Datei stream. Damit kann die gesamte Druckausgabe auf eine 
  1861. Datei umgeleitet werden, oder aber auch auf einen anderen 
  1862. Ausgabedrucker. Dieser Befehl hat keinen Einfluß auf die 
  1863. angewählten Drucktreiberinformationen.
  1864.  
  1865. @unlink_printer
  1866. int unlink_printer();
  1867.  
  1868. ■ Beschreibung:
  1869.  
  1870. Die Funktion unlink_printer unterbricht die Verbindung des 
  1871. Druckausgabekanal mit dem zweiten angegeben Kanal.
  1872.  
  1873. @empty_mouse
  1874. void empty_mouse();
  1875.  
  1876. ■ Beschreibung:
  1877.  
  1878. Die Funktion empty_mouse leert den Maustastenpuffer solange, 
  1879. bis der keine Maustastedruck mehr anliegt. Dann erst wird der 
  1880. Programmablauf weitergegeben.
  1881.  
  1882. @get_last_mouse_pos
  1883. void get_last_mouse_pos(x,y);
  1884.  
  1885. ■ Parameter:
  1886.  
  1887. unsigned int *x,*y;    Mauskoordinaten
  1888.  
  1889. ■ Beschreibung:
  1890.  
  1891. Die Funktion get_last_mouse_pos übergibt die Mauskoordinaten bei 
  1892. dem letzten Aufruf von mouse oder mouse_trap.
  1893.  
  1894. @limit_mouse_area
  1895. int limit_mouse_area(xa,ya,xe,ye);
  1896.  
  1897. ■ Parameter:
  1898.  
  1899. int xa,ya,xe,ye;  Eckkoordinaten des erlaubten Bereichs
  1900.  
  1901. ■ Beschreibung:
  1902.  
  1903. Die Funktion limit_mouse_area limitiert die Mausbewegungen auf 
  1904. den angegebenen Bereich. Danach ist eine Bewegung des Mauscursors 
  1905. nur noch in dem definierten Rechteck möglich. Alle außerhalb 
  1906. liegenden Mauskoordinaten werden in das Rechteck umgewandelt. 
  1907. Wenn der Bildschirm in einem erweiterten Modus laufen soll, 
  1908. ist es eventuell notwendig, die Grenzen der Mausbewegung anzupassen.
  1909.  
  1910. @mouse
  1911. int mouse(x,y);
  1912.  
  1913. ■ Parameter:
  1914.  
  1915. unsigned int *x,*y;    Aktuelle Mauskoordinaten
  1916.  
  1917. ■ Beschreibung:
  1918.  
  1919. Die Funktion mouse ermöglich die Kontrolle über die Mausbewegungen 
  1920. und Maustasten. Die Koordinaten x,y entsprechen den zum Aufruf 
  1921. gültigen Mauspositionskoordinaten, entsprechend den 
  1922. Bildschirmkonventionen im Fenstersystem.
  1923.  
  1924. @mouse_cursor
  1925. int mouse_cursor(mode);
  1926.  
  1927. ■ Parameter:
  1928.  
  1929. int mode;    MACRO aus kiwi_inc.h
  1930.  
  1931. ■ Beschreibung:
  1932.  
  1933. Die Funktion mouse_cursor schaltet den Mauscursor je nach mode an 
  1934. oder ab, oder übergibt den aktuellen Mauscursorstatus, das heißt 
  1935. ob dieser ein- oder ausgeschaltet ist.
  1936.  
  1937. @mouse_trap
  1938. int mouse_trap(xa,ya,xe,ye);
  1939.  
  1940. ■ Parameter:
  1941.  
  1942. int xa,ya,xe,ye;   Eckkoordinaten des Rechtecks, 
  1943.            innerhalb dessen der Mauscursor "gefangen" wird.
  1944.  
  1945. ■ Beschreibung:
  1946.  
  1947. Die Funktion mouse_trap checkt die Mauscursorposition und meldet 
  1948. wenn der Mauscursor sich in dem durch die Eckkoordinaten 
  1949. beschriebenen Rechtecks befindet und eine Maustaste betätigt wurde. 
  1950. Das Rechteck gilt einschließlich der Koordinaten. Das 
  1951. Rechteck 2,2,2,2 z.B. beschreibt die Position 2,2.
  1952.  
  1953. @reset_mouse
  1954. void reset_mouse();
  1955.  
  1956. ■ Beschreibung:
  1957.  
  1958. Die Funktion reset_mouse beendet die Mausbenutzung und schaltet 
  1959. diese komplett ab. Dabei wird der Mauscursor, sofern eingeblendet 
  1960. ebenfalls abgeschaltet. Diese Funktion sollte in reset_tools 
  1961. enthalten sein.
  1962.  
  1963. @set_mouse
  1964. int set_mouse(mode);
  1965.  
  1966. ■ Parameter:
  1967.  
  1968. int mode;    MACRO aus kiwi_inc.h
  1969.  
  1970. ■ Beschreibung:
  1971.  
  1972. Die Funktion set_mouse schaltet die Mausbenutzung je nach mode 
  1973. an oder ab, oder übergibt den aktuellen Mausstatus, das 
  1974. heißt ein- oder ausgeschaltet. Im Gegensatz zu reset_mouse wird 
  1975. die Maus nicht gänzlich abgeschaltet, sondern nur temporär.
  1976.  
  1977. @set_mouse_cursor_shape
  1978. int set_mouse_cursor_shape(start,end);
  1979.  
  1980. ■ Parameter:
  1981.  
  1982. int start;   Startzeile des Cursor
  1983. int end;     Endzeile des Cursors
  1984.  
  1985. ■ Beschreibung:
  1986.  
  1987. Die Funktion set_mouse_cursor_shape setzt den Mauscursor auf 
  1988. die Größe von Startzeile bis Endzeile. Bei Monochrom geht die 
  1989. Zeilennumerierung von 0-13, bei Farbadaptern geht er von 0-7. 
  1990. Dabei wird der Cursor auf Hardwarecursor umgeschaltet.
  1991.  
  1992. @set_mouse_cursor_size
  1993. int set_mouse_cursor_size(mode);
  1994.  
  1995. ■ Parameter:
  1996.  
  1997. int mode;   MACRO aus kiwi_inc.h
  1998.  
  1999. ■ Beschreibung:
  2000.  
  2001. Die Funktion set_mouse_cursor_size setzt den Mauscursor 
  2002. auf die Form mode.
  2003.  
  2004. @set_mouse_pos
  2005. int set_mouse_pos(x,y);
  2006.  
  2007. ■ Parameter:
  2008.  
  2009. unsigned int x,y;    Die gewünschten Mauskoordinaten
  2010.  
  2011. ■ Beschreibung:
  2012.  
  2013. Die Funktion set_mouse_pos setzt den Mauscursor an die gewünschte 
  2014. Position. Dabei wird keine Überprüfung bezüglich der 
  2015. Bildschirmgrenzen durchgeführt.
  2016.  
  2017. @add_time
  2018. unsigned long add_time(sum,time1,time2);
  2019.  
  2020. ■ Parameter:
  2021.  
  2022. struct ZEIT *sum,*time1,   sum ist Zeitsumme, time1 ist erste, 
  2023.         *time2;        time2 die zweite Zeit.
  2024.  
  2025. ■ Beschreibung:
  2026.  
  2027. Die Funktion add_time addiert die Zeiten von time1 und time2 und 
  2028. speichert die Summe in sum. 
  2029.  
  2030. @compare_date
  2031. int compare_date(date1,date2);
  2032.  
  2033. ■ Parameter:
  2034.  
  2035. struct DATUM *date1;   Das 1 Datum
  2036. struct DATUM *date2;   Das 2 Datum
  2037.  
  2038. ■ Beschreibung:
  2039.  
  2040. Die Funktion compare_date vergleicht zwei Datumsangaben darauf 
  2041. welche von beiden jüngeren Ursprungs ist.
  2042.  
  2043. @compare_time
  2044. int compare_time(time1,time2);
  2045.  
  2046. ■ Parameter:
  2047.  
  2048. struct ZEIT *time1;   Die 1 Zeit
  2049. struct ZEIT *time2;   Die 2 Zeit
  2050.  
  2051. ■ Beschreibung:
  2052.  
  2053. Die Funktion compare_time vergleicht zwei Zeitangaben darauf 
  2054. welche jüngeren Ursprungs ist.
  2055.  
  2056. @copy_date
  2057. void copy_date(date1,date2);
  2058.  
  2059. ■ Parameter:
  2060.  
  2061. struct DATUM *date1,*date2;   Zeiger auf Datumsstrukturen die
  2062.                   kopiert werden sollen
  2063.  
  2064. ■ Beschreibung:
  2065.  
  2066. Die Funktion copy_date kopiert die Werte des ersten Arguments auf 
  2067. das zweite Argument.
  2068.  
  2069. @copy_time
  2070. void copy_time(time1,time2);
  2071.  
  2072. ■ Parameter:
  2073.  
  2074. struct ZEIT *time1,*time2;   Zeiger auf Datumsstrukturen die
  2075.                  kopiert werden sollen
  2076.  
  2077. ■ Beschreibung:
  2078.  
  2079. Die Funktion copy_time kopiert die Werte des ersten Arguments auf 
  2080. das zweite Argument. 
  2081.  
  2082. @get_file_date_info
  2083. int get_file_date_info(datei,date,time);
  2084.  
  2085. ■ Parameter:
  2086.  
  2087. char *datei;           Vollständige Pfadangabe der Datei
  2088. struct DATUM *date;    Zeiger auf den Datumsstruct
  2089. struct ZEIT *time;     Zeiger auf Zeitstruct
  2090.  
  2091. ■ Beschreibung:
  2092.  
  2093. Die Funktion get_file_date_info erfasst die aktuelle Erstellungs, 
  2094. bzw letzte Schreibzugriffszeit der Datei datei. Das Datum wird 
  2095. in date, die Zeit in time gespeichert.
  2096.  
  2097. @get_system_date
  2098. void get_system_date(date);
  2099.  
  2100. ■ Parameter:
  2101.  
  2102. struct DATUM *date;    Zeiger auf den Datumsstruct
  2103.  
  2104. ■ Beschreibung:
  2105.  
  2106. Die Funktion get_system_date holt das aktuelle Systemdatum des 
  2107. Rechners und speichert es in den Datumsstruct date.
  2108.  
  2109. @get_system_time
  2110. void get_system_time(time);
  2111.  
  2112. ■ Parameter:
  2113.  
  2114. struct ZEIT *time;     Zeiger auf den Zeitstruct
  2115.  
  2116. ■ Beschreibung:
  2117.  
  2118. Die Funktion get_system_time holt die aktuelle Systemzeit und 
  2119. speichert diese in dem Struct time.
  2120.  
  2121. @set_date
  2122. void set_date(date,tag,monat,jahr);
  2123.  
  2124. ■ Parameter:
  2125.  
  2126. struct DATUM *date;               Zu setzendes Datum;
  2127. unsigned char *tag,*monat,*jahr;  Die Parameter des Datums.
  2128.  
  2129. ■ Beschreibung:
  2130.  
  2131. Die Funktion set_date initialisiert das Datum date auf die 
  2132. angegebenen Werte tag,monat,jahr. Die Struktur DATUM wird in 
  2133. kiwi_inc.h definiert und beschreibt das Datum in der 
  2134. Form >tt.mm.jjjj<.
  2135.  
  2136. @set_time
  2137. void set_time(time,stunde,minute,sekunde,zehntel);
  2138.  
  2139. ■ Parameter:
  2140.  
  2141. struct ZEIT *time;   Zeiger auf den Zeitstruct
  2142. char * stunde;       Stunden der Systemzeit
  2143. char * minute;       Minuten der Systemzeit
  2144. char * sekunde;      Sekunden der Systemzeit
  2145. char * zehntel;      Hunderstel der Systemzeit
  2146.  
  2147. ■ Beschreibung:
  2148.  
  2149. Die Funktion set_time setzt die Werte des Structs time 
  2150. auf die angegeben Werte.
  2151.  
  2152. @set_system_date
  2153. void set_system_date(date);
  2154.  
  2155. ■ Parameter:
  2156.  
  2157. struct DATUM *date;     Zeiger auf den Datumsstruct
  2158.  
  2159. ■ Beschreibung:
  2160.  
  2161. Die Funktion set_system_date setzt das aktuelle Systemdatum 
  2162. des Rechners auf die Werte des Datumsstruct date.
  2163.  
  2164. @check_memory
  2165. int check_memory();
  2166.  
  2167. ■ Beschreibung:
  2168.  
  2169. Die Funktion check_memory prüft ob noch Speicher im Heap oder 
  2170. Far Heap allokiert ist. Wenn ja wird die Funktion Mem_Display 
  2171. aufgerufen um ein Belegungsprotokoll am Bildschirm auszugeben. Diese 
  2172. Funktion sollte als letzte Funktion vor Verlassen des Programms 
  2173. benutzt werden, um zu prüfen ob alle Speicherbereiche befreit worden sind.
  2174.  
  2175. @Far_Mem_Used
  2176. unsigned long Far_Mem_Used();
  2177.  
  2178. ■ Beschreibung:
  2179.  
  2180. Die Funktion Far_Mem_Used übergibt die Anzahl der aktuell im Far Heap 
  2181. besetzten Bytes.
  2182.  
  2183. @kw_farfree
  2184. void kw_farfree(*ptr);
  2185.  
  2186. ■ Parameter:
  2187.  
  2188. void far *ptr;    Zeiger auf Speicherblock im Far Heap
  2189.  
  2190. ■ Beschreibung:
  2191.  
  2192. Die Funktion kw_farfree befreit einen zuvor mit kw_farmalloc allokierten 
  2193. Speicherblock. Diese Funktion ersetzt die Funktion farfree oder _free.
  2194.  
  2195. @kw_farmalloc
  2196. void far *kw_farmalloc(size);
  2197.  
  2198. ■ Parameter:
  2199.  
  2200. size_t size;   Anzahl Bytes
  2201.  
  2202. ■ Beschreibung:
  2203.  
  2204. Die Funktion kw_farmalloc allokiert eine Speicherblock der Größe size 
  2205. im Far Heap. Diese Funktion ersetzt die Funktion farmalloc oder _fmalloc.
  2206.  
  2207. @kw_free
  2208. void kw_free(*ptr);
  2209.  
  2210. ■ Parameter:
  2211.  
  2212. void *ptr;   Zeiger auf Speicherblock im Heap
  2213.  
  2214. ■ Beschreibung:
  2215.  
  2216. Die Funktion kw_free befreit einen zuvor mit kw_malloc allokierten 
  2217. Speicherblock. Diese Funktion ersetzt die Funktion free.
  2218.  
  2219. @kw_malloc
  2220. void far *kw_malloc(size);
  2221.  
  2222. ■ Parameter:
  2223.  
  2224. size_t size;     Anzahl Bytes
  2225.  
  2226. ■ Beschreibung:
  2227.  
  2228. Die Funktion kw_malloc allokiert eine Speicherblock der Größe size 
  2229. im Heap. Diese Funktion ersetzt die Funktion malloc.
  2230.  
  2231. @Mem_Display
  2232. void Mem_Used(stream);
  2233.  
  2234. ■ Parameter:
  2235.  
  2236. FILE *stream;    Ausgabekanal
  2237.  
  2238. ■ Beschreibung:
  2239.  
  2240. Die Funktion Mem_Display übergibt ein Belegungsprotokoll des 
  2241. dynaischen Speichers.
  2242.